Skip to content
CVE PROGRAM SOURCE RECORD5.1 Medium

CVE-2026-65900

DOMPurify before 3.4.8 Template Expression Injection via RETURN_DOM

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 products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

cure53 DOMPurify

Default version status: unaffected

  • 3.0.0 to < 3.4.8affected
  • 3.4.8unaffected
pkg:npm/dompurify

References