CVE-2026-52781 Cross-site scripting in openproject
Stored XSS in OpenProject allows attackers to execute arbitrary Turbo Stream actions, including redirects, in victim sessions via work package descriptions.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- None listed
What is CVE-2026-52781?
CVE-2026-52781 is a medium-severity cross-site scripting vulnerability in opf openproject, published on 26 Jun 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
OpenProject is open-source, web-based project management software. Prior to 17.3.3 and 17.4.1, the HTML sanitizer grants <macro> elements unrestricted data-* attributes via :data wildcard. An attacker injects data-controller="poll-for-changes" into a work package description, causing Stimulus.js to mount a controller that fetches an attacker-uploaded attachment and passes it to renderStreamMessage(). This executes arbitrary Turbo Stream actions — including redirect_to — in every victim's authenticated browser session, redirecting them to an attacker-controlled server. This vulnerability is fixed in 17.3.3 and 17.4.1.
Weakness: CWE-79
Which versions are affected by CVE-2026-52781?
How do I fix CVE-2026-52781?
No fix has been published for CVE-2026-52781 yet. Limit exposure of the affected software until one is available.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2026-52781 being exploited?
There is no known exploitation of CVE-2026-52781 in the wild and no public exploit code.
Sources
Also known as GHSA-q33w-f822-hg8x.