← back
CVE-2026-41674

xmldom: XML injection through unvalidated DocumentType serialization

CVSS 8.7 HIGHEPSS 0.4%CWE-91
In short

The xmldom library doesn't properly escape special characters when converting XML documents to strings, allowing attackers to inject malicious XML code through the DOCTYPE declaration. This can lead to security bypasses or injection attacks in applications that process untrusted XML data.

Technical detail

The vulnerability exists in XMLSerializer.serializeToString when serializing DocumentType nodes; attacker-controlled publicId, systemId, and internalSubset fields are written without escaping, enabling DOCTYPE injection that terminates the declaration early and inserts arbitrary markup. Exploitation requires an attacker to control DocumentType fields in XML processing workflows, potentially leading to XXE or XML injection attacks.

Summary generated and translated by AI from the official description.
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) `DOMParser` and `XMLSerializer` module. In @xmldom/xmldom prior to versions 0.9.10 and 0.8.13 and xmldom version 0.6.0 and prior, the package serializes DocumentType node fields (internalSubset, publicId, systemId) verbatim without any escaping or validation. When these fields are set programmatically to attacker-controlled strings, XMLSerializer.serializeToString can produce output where the DOCTYPE declaration is terminated early and arbitrary markup appears outside it. This issue has been patched in versions @xmldom/xmldom versions 0.9.10 and 0.8.13.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Affected products
xmldom · xmldom

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →