Cyber Resilience

CVE-2026-32698

SQLi in Openproject ≤ 16.6.9

Published
18 March 2026
Modified
19 March 2026
Patch / advisory
CVSS Score v3.1 9.1
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
EPSS Score 0.0027 19th percentile
Risk Priority 57 floored blend · peak EPSS

Summary

CVE-2026-32698 is a critical-severity SQL Injection (CWE-89) vulnerability in Openproject Openproject. Its CVSS base score is 9.1 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 19th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SI-10 (Information Input Validation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

OpenProject, an open-source web-based project management software, is affected by CVE-2026-32698, an SQL injection vulnerability in versions prior to 16.6.9, 17.0.6, 17.1.3, and 17.2.1. The flaw occurs when a custom field's name is used in a Cost Report, as the name is injected into the SQL query without proper sanitization, enabling arbitrary SQL command execution during report generation. Custom fields require full administrator privileges to create, which limits the initial attack surface.

An attacker with administrator privileges can exploit this by crafting a malicious custom field name to inject SQL payloads during Cost Report generation. This allows manipulation of the project identifier, which lacks sanitization in the Repositories module. By altering the identifier via SQL injection to include special characters like dots or slashes—normally not editable manually—the attacker can trigger a git repository checkout to an arbitrary filesystem path. If this path falls within specific OpenProject application directories, the next application restart executes injected Ruby code, achieving remote code execution.

The GitHub Security Advisory (GHSA-jqhf-rf9x-9rhx) details the issue and confirms that upgrading to OpenProject versions 16.6.9, 17.0.6, 17.1.3, or 17.2.1 resolves the SQL injection and related repository path traversal vulnerabilities through proper input sanitization.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2019-11600Same product: Openproject Openproject
CVE-2023-26034Shared CWE-89
CVE-2023-46914Shared CWE-89
CVE-2023-44284Shared CWE-89
CVE-2023-48722Shared CWE-89
CVE-2024-4071Shared CWE-89
CVE-2023-49085Shared CWE-89
CVE-2024-25314Shared CWE-89
CVE-2024-0528Shared CWE-89
CVE-2024-8167Shared CWE-89

Affected Assets

openproject
openproject
17.2.0 · ≤ 16.6.9 · 17.0.0 — 17.0.6 · 17.1.0 — 17.1.3

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V6.2.5

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and evaluation can discover SQLi flaws before deployment but does not stop their introduction.

Input validation directly stops untrusted data from reaching SQL query construction without neutralization.

Secure engineering principles require parameterized queries and input sanitization that structurally eliminate SQLi.

System monitoring can identify attempted SQLi exploitation via anomalous queries after the weakness exists.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly target injection flaws during coding and review so largely prevent CWE-89 introduction, yet the single broad outcome leaves residual risk from incomplete neutralization techniques or missed edge cases.

PR.AT-02 partial match
prevents

Training raises developer awareness of SQLi risks and can reduce introduction likelihood (partial) but removes none of the actual coding flaw's risk by itself since technical neutralization is still required.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

The same secure-coding and static-analysis activities surface missing neutralization of SQL metacharacters before the system is accepted.

prevents

Early warnings and shared best-practice information help organizations apply the latest remediation techniques against SQL-injection vulnerabilities.

prevents

Threat-intelligence feeds that surface new SQL-injection campaigns enable rapid updates to query-construction defenses and detection signatures before exploitation occurs.

prevents

Secure-coding rules and security testing phases mandate the use of parameterized queries or equivalent escaping, preventing the construction of dynamic SQL statements from untrusted input.

prevents

Language-specific secure coding rules, peer review and SAST together prevent the construction of SQL statements from untrusted data without proper parameterization or escaping.

References