CVE-2026-83607

xmldom: Element name injection via createElement() bypasses requireWellFormed

State
Published
Severity
8.7 High
Published
Sep 1, 2026
Updated
Sep 1, 2026
Reserved
Aug 31, 2026

Read the record on cve.org

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.14 and 0.9.11, and in xmldom version 0.6.0 and earlier, Document.createElement(tagName) stores an unvalidated element name and XMLSerializer.serializeToString() emits that name verbatim. The requireWellFormed: true path did not validate the element qualified name or synthesized xmlns:PREFIX declaration, so attacker-controlled tag names could inject attributes, elements, or processing instructions into serialized XML or HTML and could cause cross-site scripting when browser-consumed. The unchecked values violate the XML QName constraint, and default serialization and creation-time createElement() behavior remain permissive. This issue is fixed in @xmldom/xmldom versions 0.8.14 and 0.9.11; no fixed version is available for xmldom.

Scores

CVSSScoreVectorSource
4.08.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:NGitHub_M

Weaknesses

  • CWE-91 XML Injection (aka Blind XPath Injection)

Affected Products

ProductVersions
xmldomxmldom
  • <= 0.6.0Affected
xmldom@xmldom
  • >= 0.7.0, < 0.8.14Affected
  • >= 0.9.0, < 0.9.11Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.