Severity by source
AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:N
Network-accessible web app, low-privilege write access required (PR:L), victim must view content (UI:R), integrity-only UI manipulation impact with no confirmed confidentiality or availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
OpenProject is open-source, web-based project management software. Prior to 17.4.0, OpenProject's rich text (markdown) rendering pipeline uses Sanitize::Config::RELAXED[:css] for inline style sanitization. This configuration permits essentially all CSS properties in style attributes on permitted HTML elements (figure, img, table, th, tr, td). This allows any authenticated user with write access to formattable text fields (work package descriptions, comments, project descriptions, news) to inject CSS This vulnerability is fixed in 17.4.0.
AnalysisAI
CSS injection in OpenProject's rich text rendering pipeline prior to version 17.4.0 allows any authenticated user with write access to inject arbitrary CSS into formattable text fields (work package descriptions, comments, project descriptions, news). The misconfigured Sanitize::Config::RELAXED[:css] setting permits all CSS properties on permitted HTML elements, enabling UI redressing, phishing overlays, and potential CSS-based side-channel data exfiltration when a victim views the malicious content. No public exploit or active exploitation (CISA KEV) has been identified at time of analysis; the vendor-released fix is available in 17.4.0.
Technical ContextAI
OpenProject is a Ruby-based web application for project management. Its rich text (Markdown) rendering pipeline uses the sanitize Ruby gem for HTML/CSS sanitization. The vulnerability stems from applying Sanitize::Config::RELAXED[:css] - an overly permissive preset that whitelists essentially all CSS properties - to inline style attributes on permitted HTML elements including figure, img, table, th, tr, and td. CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) is the root cause class: user-controlled CSS content is not adequately restricted before being rendered into the browser DOM. This enables style-based attacks such as position:fixed overlays, background-image out-of-band requests (a known CSS data exfiltration technique), and full-page UI manipulation. The affected CPE is cpe:2.3:a:opf:openproject:*:*:*:*:*:*:*:*, indicating all OpenProject versions prior to the fix.
RemediationAI
Upgrade to OpenProject 17.4.0 or later, which replaces the overly permissive Sanitize::Config::RELAXED[:css] configuration with a restrictive CSS allowlist. The vendor advisory is at https://github.com/opf/openproject/security/advisories/GHSA-j9q2-49mp-hmq5. If immediate upgrade is not feasible, a compensating control is to restrict write access to formattable text fields (work package descriptions, comments, project descriptions, news) to trusted internal users only, removing write permissions from untrusted or externally-facing project members. This reduces the attacker pool but does not eliminate the vulnerability for privileged users. Content-Security-Policy headers that block inline styles (style-src 'none' or a strict nonce-based policy) could further limit CSS injection impact, though retrofitting CSP onto an existing application may break legitimate styling and requires testing.
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
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39878