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.

Severity (CVSS 3.1)6.1Medium
Exploit odds (30 days)0.3%top 76.0% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

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

EcosystemPackageFixed inAdvisory
Debian:12node-dompurifyno fix listedDEBIAN-CVE-2026-65900
Debian:13node-dompurifyno fix listedDEBIAN-CVE-2026-65900
Debian:14node-dompurify3.4.12+dfsg-1DEBIAN-CVE-2026-65900
Ubuntu:22.04:LTSnode-dompurifyno fix listedUBUNTU-CVE-2026-65900
Ubuntu:24.04:LTSnode-dompurifyno fix listedUBUNTU-CVE-2026-65900
Ubuntu:26.04:LTSnode-dompurifyno fix listedUBUNTU-CVE-2026-65900
npmdompurify3.4.8GHSA-gvmj-g25r-r7wr

Affected products (as reported)

VendorProductVersions
cure53 DOMPurify 3.0.0 – before 3.4.8

Weakness: CWE-79 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

References