CVE-2026-83608 xmldom: DocType `name` Injection Bypasses requireWellFormed

High 8.7 Published Updated

Attackers can inject malicious markup via DocumentType name in xmldom when requireWellFormed is enabled, potentially leading to code execution or data exposure.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-83608?

CVE-2026-83608 is a high-severity vulnerability in @xmldom xmldom, published on 1 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. Prior to @xmldom/xmldom versions 0.8.15 and 0.9.12, and in xmldom version 0.6.0 and earlier, the DOCUMENT_TYPE_NODE branch in lib/dom.js validates publicId, systemId, and internalSubset under requireWellFormed: true but emits DocumentType.name verbatim. A name containing > or whitespace can terminate the <!DOCTYPE ...> declaration and inject sibling markup; the value can be supplied through createDocumentType() on the 0.8.x and unscoped lines or through a direct DocumentType.name property write on every affected line. The default path and legacy creation-time behavior remain permissive, while the vulnerable strict path fails to enforce an XML Name. This issue is fixed in @xmldom/xmldom versions 0.8.15 and 0.9.12; no fixed version is available for xmldom.

Weakness: CWE-91

Which versions are affected by CVE-2026-83608?

6 open source packages ship an affected version, including @xmldom/xmldom and xmldom.

PackageAffectedFixed in
@xmldom/xmldom npmFrom 0.7.00.8.15
@xmldom/xmldom npmFrom 0.7.00.8.15
@xmldom/xmldom npmFrom 0.9.00.9.12
@xmldom/xmldom npmFrom 0.9.00.9.12
xmldom npmAll versions to 0.6.0None
xmldom npmAll versions to 0.6.0None

How do I fix CVE-2026-83608?

Upgrade @xmldom/xmldom to a fixed version for your release line: 0.8.15 or 0.9.12.

Is CVE-2026-83608 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-83608 exists.

Sources

Also known as AZL-99345, CLEANSTART-2026-IC19536, DEBIAN-CVE-2026-83608, ECHO-a025-84a9-6cfd, GHSA-27p8-2357-5qqv, MINI-f7rj-58xf-g8m4 and 5 more.

Is CVE-2026-83608 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free