Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted entity-reference name via user-controlled input
-
DeliveryApplication calls Document.createEntityReference() with attacker string
-
ExploitNode serialized via XMLSerializer.serializeToString() with requireWellFormed:true
-
ExecutionUnescaped &name; emitted in XML output
-
PersistDownstream XML parser processes injected markup
-
ImpactAttacker-controlled XML structure interpreted in security-relevant context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
|
| Exploitation Conditions | Exploitation requires three simultaneous application-level conditions: (1) the application explicitly calls Document.createEntityReference() with attacker-controlled input - this API is never invoked by the xmldom parser itself during XML parsing, so the vulnerable path is entirely application-driven; (2) the resulting node or a document fragment containing it is passed to XMLSerializer.serializeToString() with the requireWellFormed: true option enabled; and (3) the serialized XML string is subsequently consumed by a downstream parser in a security-relevant context where injected XML structure has meaningful effect. Applications that use xmldom only for parsing (DOMParser.parseFromString) and never construct EntityReference nodes programmatically are entirely unaffected. The CVSS 4.0 AT:P metric formally captures this specific-precondition requirement. There is no confidentiality or availability impact; only the structural integrity of serialized XML output is at risk. |
| Impact | The CVSS 4.0 score of 6.3 Medium with AT:P (attack precondition required) accurately reflects the constrained nature of this flaw. Real-world exposure is significantly narrower than a generic network-injection vulnerability: the attack surface is limited to applications that both construct EntityReference nodes programmatically from untrusted input and serialize them with requireWellFormed: true, a pattern that is uncommon in production code. The integrity-only impact (VI:L, no VC or VA) is consistent with XML structure injection - an attacker can manipulate output XML structure for a downstream parser but cannot directly exfiltrate data or crash the service. No EPSS score is provided in the input data, but the absence from CISA KEV and the lack of any known public exploit code suggest exploitation probability is currently low. The legacy xmldom package carries permanent risk since no patch will be released; for those deployments, migration to @xmldom/xmldom is the only durable remediation, and security teams should flag any dependency on the unmaintained package regardless of whether the specific EntityReference code path is exercised. |
| Exploit ScenarioDerived | An attacker submits a crafted string to a web service that uses xmldom to build an XML document programmatically, where the string reaches a Document.createEntityReference() call as the entity name. The service then serializes the document with XMLSerializer.serializeToString() and requireWellFormed: true and forwards the result to a downstream XML processor - for example, an SAML assertion consumer, an XML-based API gateway, or a configuration pipeline. The unescaped &attacker-payload; in the output allows the attacker to inject element boundaries, close attribute values, or embed processing instructions visible to the downstream parser. No public proof-of-concept is known at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
XML injection via EntityReference in xmldom enables attacker-controlled XML markup to escape entity-reference boundaries when the serialized output is reparsed downstream. Applications using @xmldom/xmldom prior to 0.8.15 or 0.9.12, or any version of the legacy xmldom package (which has no fix), are affected if they explicitly call Document.createEntityReference() with attacker-supplied input and serialize the result via XMLSerializer.serializeToString(). No active exploitation is confirmed and no public exploit has been identified; the attack requires an uncommon and explicit application code pattern that the xmldom parser itself never exercises internally.
RemediationAI
Vendor-released patches are available: upgrade @xmldom/xmldom to 0.8.15 on the 0.8.x branch or 0.9.12 on the 0.9.x branch, confirmed by release tags at https://github.com/xmldom/xmldom/releases/tag/0.8.15 and https://github.com/xmldom/xmldom/releases/tag/0.9.12. No fixed version exists for the legacy xmldom package; teams still using it must migrate to @xmldom/xmldom 0.9.12, the actively maintained successor. Where an immediate upgrade is not feasible, applications can validate any entity-reference name against the XML Name production before passing it to Document.createEntityReference() - this adds a small validation cost with no functional trade-off. The lowest-friction workaround is to avoid Document.createEntityReference() entirely: the xmldom parser never generates EntityReference nodes, and most applications have no need for them, so removing all call sites eliminates the attack surface without any behavioral change to XML parsing or normal serialization.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
xmldom is a pure-JavaScript implementation of the W3C DOM Level 2 Core specification, providing DOMParser and XMLSerializer for Node.js environments, covering two npm packages: the legacy xmldom (CPE: cpe:2.3:a:xmldom:xmldom) and the maintained fork @xmldom/xmldom (CPE: cpe:2.3:a:@xmldom:xmldom). The root cause is CWE-116 (Improper Encoding or Escaping of Output): Document.createEntityReference(name) accepted any string as the entity name without validating it against the XML Name production, and the serializer then emitted the raw nodeName directly as &name; without escaping. An attacker-controlled name containing XML structural characters (angle brackets, semicolons, markup fragments) therefore breaks the entity-reference boundary in the serialized string. Critically, the xmldom parser does not create EntityReference nodes during ordinary XML parsing, and element-child insertion of such nodes is rejected - the vulnerable code path exists only when application code explicitly constructs and serializes EntityReference nodes. The fix, introduced in commits 4664386e and 6c3fb5ff, adds Name validation at creation time in Document.createEntityReference() and a matching well-formedness check in XMLSerializer.serializeToString() under requireWellFormed: true.
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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
AC:H reflects the specific precondition (explicit EntityReference construction from untrusted input then serialized); integrity-only impact with no confidentiality or availability effect.
AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:L
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
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, Document.createEntityReference(name) accepts an invalid name and the ENTITY_REFERENCE_NODE serializer emits the resulting nodeName directly in &name; form. Directly serializing the node or fragment with XMLSerializer.serializeToString() and requireWellFormed: true can therefore break the entity-reference boundary and produce attacker-controlled XML markup when reparsed. The parser does not ordinarily create these nodes, and element-child insertion is rejected, so exploitation requires an application to create and directly serialize an EntityReference. This issue is fixed in @xmldom/xmldom versions 0.8.15 and 0.9.12; no fixed version is available for xmldom.
Blast Radius
ecosystem impact- 16 npm packages depend on @xmldom/xmldom (9 direct, 7 indirect)
- 2,014 npm packages depend on xmldom (861 direct, 1,179 indirect)
Ecosystem-wide dependent count for version 0.7.0 and other introduced versions.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) `DOMParser` and `XMLSerializer` module. Rated crit
A prototype pollution vulnerability exists in the function copy in dom.js in the xmldom (published as @xmldom/xmldom) pa
Quadratic namespace-map allocation in xmldom's SAX parser allows unauthenticated remote attackers to exhaust the Node.js
Two independent quadratic-complexity denial-of-service paths in the xmldom JavaScript XML parser allow remote unauthenti
Processing-instruction target injection in the @xmldom/xmldom JavaScript library allows XML structure breakout through u
XML injection in the xmldom serializer allows a crafted DocumentType.name containing '>' or whitespace to prematurely cl
XML injection and cross-site scripting in the xmldom JavaScript library allows attacker-controlled tag names to be injec
XML injection in the xmldom JavaScript library allows crafted attribute names to break out of attribute context during s
Quadratic attribute-processing complexity in xmldom's DOMParser enables remote unauthenticated denial of service against
XML injection in @xmldom/xmldom versions 0.9.10 and 0.9.11 bypasses the requireWellFormed serializer's DocumentType vali
XML injection in @xmldom/xmldom 0.9.11 allows attackers who supply crafted element or attribute names containing ECMAScr
XML injection in @xmldom/xmldom 0.9.0-0.9.11 allows an attacker to embed malicious markup into serialized XML output by
Same weakness CWE-116 – Improper Encoding or Escaping of Output
View allVendor 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 |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE CaaS Platform 4.0 | Not-Affected |
| SUSE Enterprise Storage 6 | Not-Affected |
| SUSE Enterprise Storage 7 | Not-Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Manager Proxy 4.0 | Not-Affected |
| SUSE Manager Proxy 4.1 | Not-Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Proxy LTS 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.0 | Not-Affected |
| SUSE Manager Retail Branch Server 4.1 | Not-Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Affected |
| SUSE Manager Server 4.0 | Not-Affected |
| SUSE Manager Server 4.1 | Not-Affected |
| SUSE Manager Server 4.2 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Manager Server LTS 4.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Not-Affected |
EUVD-2026-69222
GHSA-6gmq-8vp8-gcm6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB