Skip to main content

xmldom EUVDEUVD-2026-69241

| CVE-2026-83617 HIGH
XML Injection (aka Blind XPath Injection) (CWE-91)
2026-09-01 GitHub_M GHSA-jxjr-3g7g-3944
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Supply crafted node name with embedded line terminator
  2. Delivery
    Submit to application that builds DOM from attacker input
  3. Exploit
    Application serializes DOM with requireWellFormed: true
  4. Execution
    Multiline regex accepts name, emits injected markup verbatim
  5. Persist
    Downstream parser or system processes malformed XML
  6. Impact
    XML structure integrity compromised

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization XPath query parameterization
Exploitation Conditions

Exploitation requires two specific conditions to be simultaneously true: (1) the application must invoke XMLSerializer.serializeToString() with the explicit option { requireWellFormed: true } - this is a non-default setting that developers opt into specifically to enforce strict XML name validation; and (2) the attacker must control an element name, attribute name, or the node passed to serialization - for example, via a user-supplied XML document parsed by DOMParser that is later re-serialized, or via an API that allows clients to set node names. The default serialization path (without requireWellFormed) carries no strict name guarantee and was already outside the injection protection scope. Exploitation is limited to Node.js server-side environments where xmldom is installed; browser-native XML APIs are unaffected. Authentication requirements depend entirely on the host application; the CVSS PR:N vector indicates no library-level privilege requirement, but most realistic deployments will require at least an HTTP session to reach the affected code path.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H) reflects network-reachable, unauthenticated, high-integrity-impact exploitation, which is accurate for the worst-case deployment. However, exploitation is gated on a non-default configuration: the attacker must reach code that invokes XMLSerializer.serializeToString() with the requireWellFormed: true option AND accepts attacker-controlled node names - a narrower attack surface than the raw score implies. Applications using the default serialization path are outside the strict guarantee but also outside this specific bypass. EPSS data was not provided in the intelligence set; KEV status is negative, and no public proof-of-concept has been identified, so real-world exploitation has not been observed at time of analysis. The vulnerability class (injection bypass in a widely-used npm library) carries meaningful downstream risk because xmldom is frequently used as a dependency in XML-processing pipelines that may pass attacker-controlled content. The integrity signal is high and credible; the practical priority is somewhat moderated by the requireWellFormed condition, but teams relying on that flag for security guarantees should treat this as urgent.

Exploit ScenarioDerived

An attacker submits a crafted XML document or API payload whose element name is encoded as foo\nbar><inject/>, where \n is a literal line feed. When the consuming application builds a DOM node with this name and serializes it via XMLSerializer.serializeToString({ requireWellFormed: true }), the multiline-anchored QName regex matches foo on the first line and accepts the name as valid; the serialized output includes the injected markup bar><inject/> verbatim, corrupting any downstream system that re-parses the document. No public proof-of-concept code has been identified, but the bypass technique is straightforward to reproduce from the advisory description.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 01, 2026

XML injection in @xmldom/xmldom 0.9.11 allows attackers who supply crafted element or attribute names containing ECMAScript line terminators (U+000A, U+000D, U+2028, U+2029) to bypass the requireWellFormed: true serialization guard and emit arbitrary markup verbatim into serialized XML output. The bypass exploits the multiline flag inherited by the QName_exact regex in lib/grammar.js, which causes the anchors to match at line boundaries rather than string boundaries - directly circumventing the strict-name validation introduced to close earlier injection advisories. No public exploit has been identified at time of analysis, and the vulnerability is not listed in the CISA KEV catalog.

RemediationAI

Upgrade @xmldom/xmldom to version 0.9.12, which is the vendor-released patch confirmed by the GitHub release tag at https://github.com/xmldom/xmldom/releases/tag/0.9.12 and commit 7b2ec67e1750daadd0bb06c92e875e726544a362 (PR #1071). The fix re-anchors the QName_exact regex so that interior line terminators cause name validation to fail with InvalidStateError rather than pass silently. If immediate upgrade is not feasible, teams relying on requireWellFormed: true for security should add an explicit application-layer filter that rejects any element or attribute name containing U+000A, U+000D, U+2028, or U+2029 before passing names to DOM construction APIs; this trades some flexibility for defense-in-depth during the remediation window. Applications that do not use requireWellFormed: true were already outside the strict-serialization guarantee and are unaffected by this specific bypass, though upgrading remains advisable given the breadth of security fixes in 0.9.12.

Affected VersionsENISA

xmldom 0.9.11, < 0.9.12

Affected Packages

npm @xmldom/xmldom fix: 0.9.12
euvd xmldom_0_9_11 fix: 0.9.12

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

xmldom (cpe:2.3:a:xmldom:xmldom:*) is a pure JavaScript implementation of the W3C DOM Level 2 Core spec, widely used as a server-side XML parser and serializer in Node.js environments. The root cause is CWE-91 (XML Injection): the reg() helper in lib/grammar.js produces the QName_exact validation regex with the multiline (m) flag active, causing the ^ and $ anchors to match at embedded newline positions rather than exclusively at the start and end of the full name string. Consequently, XMLSerializer.serializeToString() under { requireWellFormed: true } accepts a name such as valid-name\nmalicious-markup> as conforming, because the regex matches valid-name on the first line and ignores everything after U+000A. The injected content is then emitted verbatim into element start/end tags or attribute name positions in the serialized document. This is a bypass of the security controls introduced for GHSA-jxjr-3g7g-3944 and related advisories; the default serialization path (without requireWellFormed) carries no strict guarantee and is unaffected.

Know when Xmldom gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

Network-reachable with no authentication at the library level; integrity-only impact as the bypass injects markup into serialized output with no confidentiality or availability consequence.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE 7.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 01, 2026 - 16:02 EUVD
CVE Published
Sep 01, 2026 - 14:47 cve.org
HIGH 8.7

DescriptionCVE.org

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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 17 npm packages depend on @xmldom/xmldom (8 direct, 9 indirect)

Ecosystem-wide dependent count for version 0.9.11.

Technical POC Analysis

CWE-91 (XML Injection), with CWE-625 (Permissive Regular Expression) assigned as the mechanism.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Applications using @xmldom/xmldom 0.9.11 are exposed to a HIGH severity XML injection vulnerability (CVSS 8.7) that bypasses the library's serialization safety controls, enabling attackers to inject arbitrary markup into XML output. This affects any system processing untrusted XML element or attribute names and could compromise data integrity and enable downstream attacks. With no patch currently available, immediate mitigation and inventory is required.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Implement input validation to reject ECMAScript line terminators (U+000A, U+000D, U+2028, U+2029) in element and attribute names; apply output encoding for serialized XML; disable requireWellFormed flag if compatible with operational requirements; evaluate migration to hardened XML processing libraries.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Medium
popular npm XML parsing library, widely used but not universally deployed
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Xmldom

View all
CVE-2022-39353 CRITICAL POC
9.8 Nov 02

xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) `DOMParser` and `XMLSerializer` module. Rated crit

CVE-2026-83610 MEDIUM POC
6.3 Sep 01

XML injection via EntityReference in xmldom enables attacker-controlled XML markup to escape entity-reference boundaries

CVE-2022-37616 CRITICAL
9.8 Oct 11

A prototype pollution vulnerability exists in the function copy in dom.js in the xmldom (published as @xmldom/xmldom) pa

CVE-2026-83615 HIGH POC
8.7 Sep 01

Quadratic namespace-map allocation in xmldom's SAX parser allows unauthenticated remote attackers to exhaust the Node.js

CVE-2026-83614 HIGH POC
8.7 Sep 01

Two independent quadratic-complexity denial-of-service paths in the xmldom JavaScript XML parser allow remote unauthenti

CVE-2026-83616 HIGH POC
8.7 Sep 01

Processing-instruction target injection in the @xmldom/xmldom JavaScript library allows XML structure breakout through u

CVE-2026-83608 HIGH POC
8.7 Sep 01

XML injection in the xmldom serializer allows a crafted DocumentType.name containing '>' or whitespace to prematurely cl

CVE-2026-83607 HIGH POC
8.7 Sep 01

XML injection and cross-site scripting in the xmldom JavaScript library allows attacker-controlled tag names to be injec

CVE-2026-83605 HIGH POC
8.7 Sep 01

XML injection in the xmldom JavaScript library allows crafted attribute names to break out of attribute context during s

CVE-2026-83613 HIGH POC
8.7 Sep 01

Quadratic attribute-processing complexity in xmldom's DOMParser enables remote unauthenticated denial of service against

CVE-2026-83618 HIGH POC
8.7 Sep 01

XML injection in @xmldom/xmldom versions 0.9.10 and 0.9.11 bypasses the requireWellFormed serializer's DocumentType vali

CVE-2026-83609 HIGH POC
8.7 Sep 01

XML injection in @xmldom/xmldom 0.9.0-0.9.11 allows an attacker to embed malicious markup into serialized XML output by

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Module for Python 3 15 SP7 Not-Affected
SUSE Linux Enterprise Server 15 SP7 Not-Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy