Skip to main content

xmldom CVE-2026-83610

| EUVDEUVD-2026-69222 MEDIUM
Improper Encoding or Escaping of Output (CWE-116)
2026-09-01 GitHub_M GHSA-6gmq-8vp8-gcm6
6.3
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 entity-reference name via user-controlled input
  2. Delivery
    Application calls Document.createEntityReference() with attacker string
  3. Exploit
    Node serialized via XMLSerializer.serializeToString() with requireWellFormed:true
  4. Execution
    Unescaped &name; emitted in XML output
  5. Persist
    Downstream XML parser processes injected markup
  6. Impact
    Attacker-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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% 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 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

xmldom ≤ 0.6.0
xmldom 0.9.0, < 0.9.12
xmldom 0.7.0, < 0.8.15

Affected Packages

npm @xmldom/xmldom fix: 0.8.15, 0.9.12
npm xmldom fix: 0.8.15, 0.9.12

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

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
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
vuln.today AI 3.7 LOW

AC:H reflects the specific precondition (explicit EntityReference construction from untrusted input then serialized); integrity-only impact with no confidentiality or availability effect.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Sep 01, 2026 - 16:02 EUVD

DescriptionCVE.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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
popular npm XML DOM library used across many Node.js projects
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC 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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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-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-83617 HIGH POC
8.7 Sep 01

XML injection in @xmldom/xmldom 0.9.11 allows attackers who supply crafted element or attribute names containing ECMAScr

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