Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain valid user credentials
-
DeliveryAuthenticate to OpenProject instance
-
ExploitAccess reporting module
-
InstallCraft malicious filter using =n operator
-
C2Inject SQL payload into filter value
-
ExecuteExecute arbitrary database queries
-
ImpactExtract sensitive data or modify records
-
Step 8Escalate privileges across application scope
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires authenticated access to the OpenProject instance with permissions to access the reporting module. The attacker must have at minimum a low-privilege user account (PR:L) capable of creating or editing custom reports that utilize filter operators. The vulnerability is present when the reporting module processes user-supplied filter criteria through the =n (equals-not) operator defined in modules/reporting/lib/report/operator.rb. No special network conditions, non-default configurations, or user interaction beyond the attacker's own authenticated session are required (AC:L/UI:N). Exploitation is limited by the authentication boundary - unauthenticated remote attackers cannot exploit this vulnerability. The database user account privileges under which OpenProject operates will constrain the scope of SQL injection impact, though default installations typically grant broad database permissions to support normal application operations. |
| Impact | Real-world risk assessment reveals a nuanced threat profile despite the critical CVSS 9.9 rating. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C) indicates network-accessible exploitation with low complexity, but the PR:L requirement means attackers must possess valid authenticated credentials to the OpenProject instance. The changed scope and high integrity/availability impact ratings reflect database-level access that could affect the entire application. However, EPSS probability of 0.04% (13th percentile) suggests security researchers and mass-scanning adversaries are not prioritizing this vulnerability, likely due to the authentication barrier and the smaller attack surface of OpenProject compared to more ubiquitous platforms. No CISA KEV listing confirms this is not being exploited in widespread campaigns. The GitHub Security Advisory (GHSA-5rrm-6qmq-2364) as the disclosure source indicates responsible disclosure rather than in-the-wild discovery. Priority should be MODERATE for most organizations: the technical severity is real (authenticated users can compromise database integrity), but the practical exploitation landscape shows limited active threat activity. Organizations with untrusted authenticated users (public-facing instances, low-privilege guest accounts, or compromised credentials scenarios) should prioritize patching. Internal deployments with trusted user bases face lower immediate risk but should still patch within standard maintenance cycles given the low patch complexity. |
| Exploit ScenarioDerived | An authenticated attacker with low-privilege access to an OpenProject instance navigates to the reporting module and crafts a custom report filter using the equals-not (=n) operator. By injecting SQL metacharacters and commands into the filter value field (for example: ' OR 1=1 UNION SELECT password FROM users --), the attacker bypasses input validation and causes the reporting module to execute arbitrary SQL against the backend database. The attacker extracts sensitive data including user credentials, project information, and system configuration, then modifies database records to escalate their own privileges to administrator level or plant backdoor accounts. With the scope change allowing impact beyond the reporting module boundary, the attacker leverages database access to compromise application integrity and availability. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Apr 21, 2026
SQL injection in OpenProject's reporting module allows authenticated attackers to execute arbitrary database queries via the =n operator. Affects all versions prior to 17.2.3. Attack complexity is low with no user interaction required, enabling authenticated users to escalate privileges, modify data integrity, and potentially compromise availability across scope boundaries. Vendor-released patch confirms fix in version 17.2.3. EPSS score of 0.04% (13th percentile) indicates low probability of mass exploitation, though the CVSS 9.9 critical rating reflects severe potential impact in targeted scenarios. No CISA KEV listing or public exploit code identified at time of analysis.
Earlier versions of this analysis (1)
SQL injection in OpenProject reporting module allows authenticated users to execute arbitrary SQL commands with escalated privileges. The vulnerable =n operator in the reporting library (modules/reporting/lib/report/operator.rb:177) concatenates user-controlled input directly into WHERE clauses without parameterization. Affects all OpenProject versions prior to 17.2.3. With CVSS 9.9 (Critical) and scope change (S:C), attackers with low-privilege authenticated access can achieve high integrity and availability impact across security boundaries. EPSS data not available; no public exploit identified at time of analysis, though the technical details in the GitHub Security Advisory may facilitate rapid weaponization.
RemediationAI
Upgrade to OpenProject version 17.2.3 immediately, as confirmed by the official release at https://github.com/opf/openproject/releases/tag/v17.2.3 and security advisory GHSA-5rrm-6qmq-2364. The patch resolves the SQL injection by implementing proper parameterization for the =n operator in the reporting module. For organizations unable to upgrade immediately, implement the following compensating controls with noted trade-offs: (1) Restrict access to the reporting module through permission-based access controls, limiting exposure to only highly trusted administrators (trade-off: reduces reporting functionality for normal users, may impact business workflows); (2) Deploy database activity monitoring to detect abnormal SQL query patterns from the OpenProject application user, particularly complex WHERE clauses or data exfiltration attempts (trade-off: reactive control only, requires security team capacity for alert triage); (3) Apply principle of least privilege to the OpenProject database user account, using read-only permissions where possible and restricting access to sensitive tables (trade-off: may break legitimate application functionality requiring write access, requires extensive testing). These mitigations reduce but do not eliminate risk, as authenticated attackers can still execute queries within granted permissions. Upgrading to 17.2.3 remains the only complete remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in the reporting module's query operator implementation (modules/reporting/lib/report/operator.rb line 177), specifically within the equals-not (=n) comparison operator. OpenProject uses this operator to construct dynamic SQL WHERE clauses for database queries in its reporting functionality. CWE-89 (SQL Injection) occurs when the operator directly concatenates or interpolates user-supplied filter values into SQL statements without parameterized queries or prepared statements. Ruby on Rails applications typically use ActiveRecord for safe query construction, but custom operators in the reporting module bypass these protections. The affected CPE (cpe:2.3:a:opf:openproject) indicates this is a first-party vulnerability in OpenProject Foundation's core product rather than a dependency issue. The scope change (S:C) in the CVSS vector suggests the vulnerability can affect resources beyond the reporting module's authorization boundary, likely due to shared database connections with elevated privileges.
Know when Openproject gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
6DescriptionNVD
OpenProject is an open-source, web-based project management software. Prior to version 17.2.3, the =n operator in modules/reporting/lib/report/operator.rb:177 embeds user input directly into SQL WHERE clauses without parameterization. This issue has been patched in version 17.2.3.
Executive ViewAI
OpenProject versions prior to 17.2.3 contain a critical SQL injection vulnerability in the reporting module that allows authenticated users to execute arbitrary database queries, modify data, and potentially escalate privileges. Organizations using affected OpenProject deployments face immediate risk of unauthorized data access and integrity compromise, requiring urgent patching regardless of the currently low exploitation probability.
Apply vendor patch to OpenProject 17.2.3 or later. If immediate patching is not feasible: (1) Restrict access to the reporting module to only essential users with minimal required privileges; (2) Implement database query logging and alerts for anomalous SQL patterns; (3) Monitor OpenProject service account activity for unauthorized data exfiltration or modification; (4) Isolate affected OpenProject instances from production environment if business-critical systems depend on their data.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
More in Openproject
View allA SQL injection vulnerability in the activities API in OpenProject before 8.3.2 allows a remote attacker to execute arbi
OpenProject is web-based project management software. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
OpenProject is open source project management software. Rated medium severity (CVSS 6.5), this vulnerability is remotely
Authenticated remote code execution affects the official openproject/openproject Docker image, which ships with a hardco
Cross-project folder hijacking in OpenProject before 17.3.3 and 17.4.1 lets a project-admin abuse an insecure direct obj
SQL injection in OpenProject's baseline-comparison (timestamps) functionality lets an authenticated, low-privileged user
OpenProject has a CVSS 9.9 command injection vulnerability allowing authenticated users to execute OS commands on the pr
Remote code execution in OpenProject before 17.3.3 and 17.4.1 arises from cache store poisoning, allowing an attacker wi
OpenProject, a web-based project management platform, contains a critical SQL injection vulnerability in versions prior
OpenProject (before 16.6.4) has a local file read vulnerability through SVG-based ImageMagick exploitation in the PDF ex
OpenProject's Repositories module contains a stored cross-site scripting (XSS) vulnerability that occurs when displaying
Token decryption in OpenProject 17.0 allows authenticated attackers to intercept and decrypt 24-hour authentication toke
EUVD-2026-18470
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB