Description
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.
Published: 2026-03-18
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

The vulnerability is a classic SQL injection that occurs when the name of a custom field is incorporated directly into a database query used to generate a Cost Report. By injecting malicious SQL through the custom field name, an attacker can execute arbitrary SQL commands against the database. Because the application also includes a second flaw that allows a git repository to be checked out to an arbitrary filesystem location when the project identifier is unsanitized, the attacker can chain these flaws. The first flaw enables the attacker to use the SQL injection to modify the project identifier, and the second flaw allows writing a malicious git repository to a location that, after a server restart, injects Ruby code into the OpenProject application. Together, these issues lead to remote code execution. The primary weakness is identified as CWE-89 (SQL Injection).

Affected Systems

This flaw exists in opf:openproject. Versions prior to 16.6.9, 17.0.6, 17.1.3, and 17.2.1 are affected. The CPE stubs show that the vulnerability impacts any release versions called 16.*, 17.0.*, 17.1.*, or 17.2.*, especially since 17.2.0 is listed. The fixes are included in the aforementioned patched releases.

Risk and Exploitability

The CVSS base score is 9.1, indicating a high severity attack that can compromise confidentiality, integrity, and availability. The EPSS score of less than 1% suggests a low probability of exploitation in the near term. The flaw is not in the CISA KEV catalog, implying no known active exploits. The attack vector requires web access to the application and the presence of an administrator who can create a custom field. Therefore, while the exploit could lead to full system compromise, the limited threat surface (only admins can create the vulnerable custom field) reduces the likelihood of success. If an attacker attains administrative rights, chaining the two vulnerabilities provides a straightforward path to remote code execution.

Generated by OpenCVE AI on March 19, 2026 at 19:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade OpenProject to at least version 16.6.9 for the 16.x line, 17.0.6 for 17.0.x, 17.1.3 for 17.1.x, or 17.2.1 for 17.2.x releases.
  • Verify that the application no longer allows arbitrary custom field names in cost reports after the upgrade.
  • If upgrading immediately is not possible, restrict custom field creation to a small set of trusted administrators and disable the Cost Report feature until a patch is applied.

Generated by OpenCVE AI on March 19, 2026 at 19:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 19 Mar 2026 18:45:00 +0000

Type Values Removed Values Added
First Time appeared Openproject
Openproject openproject
CPEs cpe:2.3:a:openproject:openproject:*:*:*:*:*:*:*:*
cpe:2.3:a:openproject:openproject:17.2.0:*:*:*:*:*:*:*
Vendors & Products Openproject
Openproject openproject

Thu, 19 Mar 2026 15:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 19 Mar 2026 09:45:00 +0000

Type Values Removed Values Added
First Time appeared Opf
Opf openproject
Vendors & Products Opf
Opf openproject

Wed, 18 Mar 2026 21:30:00 +0000

Type Values Removed Values Added
Description 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.
Title OpenProject has a SQL Injection via Custom Field Name that can be chained to Remote Code Execution
Weaknesses CWE-89
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H'}


Subscriptions

Openproject Openproject
Opf Openproject
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-03-19T14:22:17.046Z

Reserved: 2026-03-13T14:33:42.822Z

Link: CVE-2026-32698

cve-icon Vulnrichment

Updated: 2026-03-19T14:22:10.972Z

cve-icon NVD

Status : Analyzed

Published: 2026-03-18T22:16:24.223

Modified: 2026-03-19T18:32:37.460

Link: CVE-2026-32698

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-03-25T11:52:10Z

Weaknesses