CVE-2026-63670 ApostropheCMS: Mutation-XSS / allowedTags bypass via literal `</textarea/>` solidus close
Attackers can execute arbitrary JavaScript in victim browsers by bypassing HTML sanitization via malformed textarea tags in ApostropheCMS.
- 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-63670?
CVE-2026-63670 is a medium-severity cross-site scripting vulnerability in apostrophecms apostrophe, published on 17 Aug 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. Prior to 2.17.6, sanitizeHtml() can pass disallowed executable markup through packages/sanitize-html/index.js when textarea or xmp is included in allowedTags because a literal solidus after the raw-text end-tag name is treated as text by htmlparser2 and the ontext handler emits that content without escaping, while a browser parses the following img onerror markup as active HTML. This issue is fixed in version 2.17.6.
Weakness: CWE-79
Which versions are affected by CVE-2026-63670?
2 open source packages ship an affected version, including sanitize-html.
| Package | Affected | Fixed in |
|---|---|---|
sanitize-html npm | All versions | 2.17.6 |
sanitize-html npm | All versions | 2.17.6 |
How do I fix CVE-2026-63670?
Upgrade sanitize-html to 2.17.6 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-63670 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-63670 exists.
Sources
Also known as CLEANSTART-2026-VM49964, ECHO-baad-3a65-8f72, GHSA-jxwj-j7wr-gfrw, MINI-73qr-3p6g-qvrf, MINI-82jq-xgc6-v68c, MINI-j45c-q2wx-6jxx.