Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAdministrator creates malicious custom field name
-
DeliveryCustom field used in Cost Report generation
-
ExploitSQL injection payload embedded in query
-
ExecutionArbitrary SQL commands executed
-
ImpactDatabase compromise achieved
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 | Attacker must have OpenProject administrator privileges to create a custom field with malicious SQL payload. When any user generates a Cost Report using that custom field, the SQL injection executes. Affects OpenProject versions <16.6.9, <17.0.6, <17.1.3, <17.2.1. |
| Impact | The CVSS score of 9.1 (Critical) reflects the severity of potential impact with network-based attack vector, low complexity, but requires high privileges (administrator access). The PR:H requirement significantly reduces the attack surface since only users with full administrator privileges can create custom fields necessary for exploitation. However, the Scope:Changed metric indicates potential for broader system compromise beyond the vulnerable component. Without EPSS or KEV data available in the intelligence sources, real-world exploitation likelihood appears moderate due to the privilege prerequisite, but the technical impact is severe given the remote code execution potential through the vulnerability chain. This represents a high priority for organizations where administrator accounts may be compromised or where insider threats are a concern, but lower urgency than internet-facing pre-authentication RCE vulnerabilities. |
| Exploit ScenarioDerived | An attacker with compromised administrator credentials or a malicious insider creates a custom field with a specially crafted name containing SQL injection payloads. When generating a Cost Report that includes this custom field, the SQL injection executes, allowing the attacker to modify project identifier values in the database to include path traversal sequences. The attacker then creates a repository in the affected project, causing OpenProject to checkout a malicious git repository to an arbitrary path within the application directory. Upon the next application restart, the injected Ruby code executes with the privileges of the OpenProject application server, granting full system compromise. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 18, 2026
OpenProject, a web-based project management platform, contains a critical SQL injection vulnerability in versions prior to 16.6.9, 17.0.6, 17.1.3, and 17.2.1. When custom fields are used in Cost Reports, insufficient input sanitization allows attackers with administrator privileges to execute arbitrary SQL commands. This vulnerability can be chained with a path traversal issue in the Repositories module to achieve remote code execution by injecting malicious Ruby code into the application. No current KEV listing or public POC is documented in available sources.
RemediationAI
Immediately upgrade OpenProject to version 16.6.9 (for 16.x series), 17.0.6 (for 17.0.x series), 17.1.3 (for 17.1.x series), or 17.2.1 (for 17.2.x series) or later as documented in the vendor security advisory at https://github.com/opf/openproject/security/advisories/GHSA-jqhf-rf9x-9rhx. These patched versions implement proper input sanitization for custom field names and project identifiers. As a temporary mitigation until patching is completed, restrict administrator account access to only highly trusted personnel, implement strict monitoring of custom field creation activities, and review existing custom field names for suspicious content. Additionally, monitor git repository checkout operations and file system changes within the OpenProject application directory for unauthorized modifications.
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 affects OpenProject (CPE cpe:2.3:a:opf:openproject:*:*:*:*:*:*:*:*), an open-source Ruby on Rails-based project management system. The root cause is CWE-89 (SQL Injection), where custom field names are concatenated directly into SQL queries during Cost Report generation without proper parameterization or escaping. The attack chain leverages this SQL injection to modify project identifiers (normally restricted from containing special characters like dots or slashes), which are then used unsanitized in the Repositories module to construct filesystem paths for git repository checkouts. By controlling the checkout path and placing it within OpenProject's application directory structure, an attacker can inject malicious Ruby code that executes upon application restart.
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:H/UI:N/S:C/C:H/I:H/A:H
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
3DescriptionGitHub Advisory
OpenProject is an open-source, web-based project management software. Versions prior to 16.6.9, 17.0.6, 17.1.3, and 17.2.1 are vulnerable to an SQL injection attack via a custom field's name. When that custom field was used in a Cost Report, the custom field's name was injected into the SQL query without proper sanitation. This allowed an attacker to execute arbitrary SQL commands during the generation of a Cost Report. As custom fields can only be generated by users with full administrator privileges, the attack surface is somewhat reduced. Together with another bug in the Repositories_module, that used the project identifier without sanitation to generate the checkout path for a git repository in the filesystem, this allowed an attacker to checkout a git repository to an arbitrarily chosen path on the server. If the checkout is done within certain paths within the OpenProject application, upon the next restart of the application, this allows the attacker to inject ruby code into the application. As the project identifier cannot be manually edited to any string containing special characters like dots or slashes, this needs to be changed via the SQL injection described above. Versions 16.6.9, 17.0.6, 17.1.3, and 17.2.1 fix the issue.
Executive ViewAI
OpenProject versions prior to 16.6.9, 17.0.6, 17.1.3, and 17.2.1 contain a critical SQL injection vulnerability in Cost Reports that requires administrator access to exploit. While the direct SQL injection is admin-gated, it can be chained with a path traversal flaw to achieve remote code execution, posing a severe insider threat and potential escalation vector if administrator accounts are compromised. Organizations running affected versions must patch immediately to prevent unauthorized data access and system compromise.
Apply vendor patch. If immediate patching is not possible: (1) Restrict Cost Reports feature access to minimal required administrators; (2) monitor database query logs for unusual SQL patterns in OpenProject transactions; (3) disable or isolate the Repositories module if not in active use; (4) implement multi-factor authentication for all administrator accounts to reduce insider risk.
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.
Related Vulnerabilities in OpenProject SQL Injection and XSS
View all 2More 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 (before 16.6.4) has a local file read vulnerability through SVG-based ImageMagick exploitation in the PDF ex
Token decryption in OpenProject 17.0 allows authenticated attackers to intercept and decrypt 24-hour authentication toke
Privilege escalation in OpenProject before 17.3.3 and 17.4.1 lets an attacker forge a cross-site request to /users/:id c
EUVD-2026-12966
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB