Vulnerability · Published Jul 23, 2026 · Assigned by VulnCheck
CVE-2026-65900DOMPurify before 3.4.8 Template Expression Injection via RETURN_DOM
Medium 6.1
In plain English
A medium-severity cross-site scripting in DOMPurify from cure53. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 24% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
DOMPurify versions >=3.0.0 and before 3.4.8, when configured with SAFE_FOR_TEMPLATES together with a DOM output mode (RETURN_DOM, RETURN_DOM_FRAGMENT, or IN_PLACE), fail to strip template expressions (e.g. ${evil}, {{evil}}, <%evil%>) inside <template> element content. The final normalization/scrub pass (_scrubTemplateExpressions) uses a NodeIterator and node.normalize() that do not descend into template.content, so expressions that only form after adjacent text nodes merge survive sanitization. This bypasses SAFE_FOR_TEMPLATES and can allow a downstream template engine to evaluate attacker-supplied expressions. The string output path is not affected.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | node-dompurify | no fix listed | DEBIAN-CVE-2026-65900 |
| Debian:13 | node-dompurify | no fix listed | DEBIAN-CVE-2026-65900 |
| Debian:14 | node-dompurify | 3.4.12+dfsg-1 | DEBIAN-CVE-2026-65900 |
| Ubuntu:22.04:LTS | node-dompurify | no fix listed | UBUNTU-CVE-2026-65900 |
| Ubuntu:24.04:LTS | node-dompurify | no fix listed | UBUNTU-CVE-2026-65900 |
| Ubuntu:26.04:LTS | node-dompurify | no fix listed | UBUNTU-CVE-2026-65900 |
| npm | dompurify | 3.4.8 | GHSA-gvmj-g25r-r7wr |
Affected products (as reported)
Weakness: CWE-79 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
References
- GitHub Security Advisory (GHSA-gvmj-g25r-r7wr) vendor-advisory
- VulnCheck Advisory: DOMPurify before 3.4.8 Template Expression Injection via RETURN_DOM third-party-advisory