Skip to main content

RUET OJ CVE-2025-12327

LOW
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2025-10-27 cna@vuldb.com
2.1
CVSS 4.0 · NVD

Severity by source

NVD PRIMARY
2.1 LOW
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

1
Analysis Generated
Apr 29, 2026 - 02:33 vuln.today

DescriptionCVE.org

A vulnerability was determined in shawon100 RUET OJ up to 18fa45b0a669fa1098a0b8fc629cf6856369d9a5. This issue affects some unknown processing of the file /description.php. This manipulation of the argument ID causes sql injection. The attack may be initiated remotely. The exploit has been publicly disclosed and may be utilized. This product uses a rolling release model to deliver continuous updates. As a result, specific version information for affected or updated releases is not available. The vendor was contacted early about this disclosure but did not respond in any way.

AnalysisAI

SQL injection in RUET OJ /description.php endpoint allows authenticated remote attackers to manipulate the ID parameter and inject arbitrary SQL commands, achieving limited confidentiality and integrity compromise. The vulnerability affects the rolling-release version up to commit 18fa45b0a669fa1098a0b8fc629cf6856369d9a5, with publicly available exploit code disclosed. Despite the public disclosure, the extremely low EPSS score (0.02%) and high authentication barrier suggest minimal real-world exploitation risk, though the unresponsive vendor posture leaves the codebase unpatched.

Technical ContextAI

RUET OJ is a competitive programming judge system written in PHP. The vulnerability exists in /description.php, which processes a user-supplied ID parameter without proper input sanitization or parameterized query construction (CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component). The SQL injection occurs in the argument handling logic, likely in a SELECT or JOIN query constructing problem descriptions. As a rolling-release project with no versioning scheme, the affected codebase is identified only by a Git commit hash (18fa45b0a669fa1098a0b8fc629cf6856369d9a5). The PHP framework does not appear to enforce prepared statements or ORM protections by default.

RemediationAI

The vendor (shawonruet) did not respond to early disclosure notifications and has not released an official patch as of the analysis date. Administrators should monitor the RUET OJ GitHub repository for security fixes and apply updates as soon as available. As an immediate compensating control, restrict access to the /description.php endpoint to authenticated users and apply a Web Application Firewall (WAF) rule to block common SQL injection payloads in the ID parameter (e.g., patterns containing single quotes, semicolons, or SQL keywords). Additionally, implement database-level read-only permissions for the application user account if the application does not require write access to the affected query - this limits the scope of injected commands to SELECT operations only. Developers should conduct an immediate code review of all user-input handling in PHP files, particularly those processing ID or identifier parameters, and refactor them to use prepared statements with parameterized queries. For long-term mitigation, consider migrating to a PHP framework with built-in ORM and input validation (e.g., Laravel, Symfony) that enforces prepared statements by default.

Share

CVE-2025-12327 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy