Description
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. From 0.9.11 until 0.9.12, the requireWellFormed: true element and attribute name checks use the anchored QName_exact expression produced by reg() in lib/grammar.js, which inherits the multiline flag. A name with a valid first line followed by U+000A, U+000D, U+2028, or U+2029 and breakout markup therefore passes validation and is emitted verbatim in element start and end tags or attribute names. This bypasses the strict-serialization checks introduced for the earlier element-name and attribute-name injection advisories, while the default serialization path remains outside the strict guarantee. This issue is fixed in @xmldom/xmldom version 0.9.12.
Published: 2026-09-01
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Injection via malformed element and attribute names
Action: Immediate Patch
AI Analysis

Impact

The vulnerability allows an attacker to create element and attribute names that include embedded line terminators, bypassing the required well‑formedness checks. Because the names are then emitted verbatim during serialization, an attacker can inject arbitrary tags or attributes into the parsed XML, potentially leading to code execution or malicious DOM manipulation. The weakness is a form of injection flaw identified as CWE‑625 and CWE‑91.

Affected Systems

The issue affects the JavaScript library @xmldom:xmldom, specifically all releases from 0.9.11 up to but not including 0.9.12. The problem has been resolved in version 0.9.12 and later.

Risk and Exploitability

This flaw has a CVSS score of 8.7, indicating high severity. The EPSS score is not publicly available, and the vulnerability is not listed in the CISA KEV catalog. Exploitation would require an application to parse untrusted XML using the affected xmldom parser. An attacker can supply crafted XML that embeds line terminator characters within element or attribute names, causing the parser to emit those names verbatim and enabling injection of arbitrary tags or attributes into the resulting document. The likelihood of exploitation depends on the exposure of xmldom to external input, but the high CVSS and lack of mitigation in earlier versions raise significant risk.

Generated by OpenCVE AI on September 1, 2026 at 16:46 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade xmldom to version 0.9.12 or later.
  • If an upgrade cannot be performed immediately, remove or heavily sanitize any XML that may contain line terminator characters in element or attribute names before parsing.
  • Consider rejecting all XML inputs containing such control characters or switching to a parser that enforces stricter well‑formedness checks.

Generated by OpenCVE AI on September 1, 2026 at 16:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jxjr-3g7g-3944 xmldom: requireWellFormed element/attribute name validation is bypassable via an embedded line terminator
History

Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Xmldom
Xmldom xmldom
Vendors & Products Xmldom
Xmldom xmldom
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 01 Sep 2026 15:00:00 +0000

Type Values Removed Values Added
Description xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. From 0.9.11 until 0.9.12, the requireWellFormed: true element and attribute name checks use the anchored QName_exact expression produced by reg() in lib/grammar.js, which inherits the multiline flag. A name with a valid first line followed by U+000A, U+000D, U+2028, or U+2029 and breakout markup therefore passes validation and is emitted verbatim in element start and end tags or attribute names. This bypasses the strict-serialization checks introduced for the earlier element-name and attribute-name injection advisories, while the default serialization path remains outside the strict guarantee. This issue is fixed in @xmldom/xmldom version 0.9.12.
Title xmldom: requireWellFormed element/attribute name validation is bypassable via an embedded line terminator
Weaknesses CWE-625
CWE-91
References
Metrics cvssV4_0

{'score': 8.7, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-01T15:30:45.725Z

Reserved: 2026-08-31T20:36:25.744Z

Link: CVE-2026-83617

cve-icon Vulnrichment

Updated: 2026-09-01T15:30:42.162Z

cve-icon NVD

Status : Deferred

Published: 2026-09-01T15:17:40.273

Modified: 2026-09-08T21:11:31.703

Link: CVE-2026-83617

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T17:00:17Z

Weaknesses
  • CWE-625

    Permissive Regular Expression

  • CWE-91

    XML Injection (aka Blind XPath Injection)