CVE-2026-44990 Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html`
Attackers can inject malicious scripts via xmp tags in sanitized content, leading to stored XSS in applications using the vulnerable library.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-44990?
CVE-2026-44990 is a critical cross-site scripting vulnerability in apostrophecms sanitize-html, published on 12 Jun 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Under the default configuration, versions of `sanitize-html` prior to 2.17.4 can turn attacker-controlled content inside a disallowed `xmp` element into live HTML or JavaScript. This is a sanitizer bypass in the default `disallowedTagsMode: 'discard'` path and can lead to stored XSS in applications that render sanitized output back to users. Version 2.17.4 patches the issue.
Weakness: CWE-79
Which versions are affected by CVE-2026-44990?
2 open source packages ship an affected version, including sanitize-html.
| Package | Affected | Fixed in |
|---|---|---|
sanitize-html npm | From 2.17.3 | 2.17.4 |
sanitize-html npm | From 2.17.3 | 2.17.4 |
How do I fix CVE-2026-44990?
Upgrade sanitize-html to 2.17.4 or later.
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-44990 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-44990 exists.
Sources
Also known as GHSA-rpr9-rxv7-x643, MINI-334f-vv72-xhpj, ROOT-APP-NPM-CVE-2026-44990.