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.15 and 0.9.12, and in xmldom version 0.6.0 and earlier, DOMHandler.startElement in lib/dom-parser.js inserts every parsed attribute through setAttributeNode, while NamedNodeMap.setNamedItem in lib/dom.js calls the linear getNamedItem or getNamedItemNS lookup for each insertion. A well-formed element with many distinct attributes therefore requires quadratic comparisons during DOMParser.parseFromString() and can stall a Node.js event loop before application validation. This issue is fixed in @xmldom/xmldom versions 0.8.15 and 0.9.12; no fixed version is available for xmldom.
Published: 2026-09-01
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via Event Loop Stall
Action: Apply Patch
AI Analysis

Impact

A defect in the xmldom XML parser causes quadratic-time attribute deduplication. While parsing elements with many distinct attributes, each attribute insertion triggers a linear lookup, causing the number of comparisons to grow quadratically with the attribute count. The resulting CPU‑intensive operation can stall the Node.js event loop, preventing the application from handling legitimate requests and causing a denial of service. This weakness is classified as CWE‑407 for inefficient algorithm design and as CWE‑606 for improper input validation, as the parser fails to reject large or malformed XML data.

Affected Systems

The vulnerability affects the @xmldom/xmldom package versions older than 0.8.15 and 0.9.12, as well as the legacy xmldom package version 0.6.0 and earlier. Any Node.js application that imports these libraries for XML parsing is directly impacted, while newer versions have the fix applied. There is no fixed release for the older xmldom project, so the risk persists for environments that continue to use it.

Risk and Exploitability

The CVSS score of 8.7 indicates a high severity impact on availability. The likely attack vector is the delivery of a crafted XML document containing many attributes to an application that parses untrusted XML input. Based on the description, it is inferred that exploitation requires only this delivery and does not need authentication or privileged access. The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalog, suggesting limited confirmed exploitation to date. Nonetheless, the risk is high for any deployment that processes XML from external input without additional controls.

Generated by OpenCVE AI on September 2, 2026 at 04:11 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade @xmldom/xmldom to version 0.8.15 or 0.9.12
  • Validate or reject XML documents that exceed a reasonable attribute count or overall size before parsing
  • Configure monitoring to detect and restart processes that exhibit prolonged event‑loop stalls

Generated by OpenCVE AI on September 2, 2026 at 04:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-8344-3jmq-59r6 xmldom: Quadratic-time attribute deduplication
History

Fri, 04 Sep 2026 02:30:00 +0000

Type Values Removed Values Added
References
Metrics ssvc

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


Wed, 02 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-606
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Important


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

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

Tue, 01 Sep 2026 14:45: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. Prior to @xmldom/xmldom versions 0.8.15 and 0.9.12, and in xmldom version 0.6.0 and earlier, DOMHandler.startElement in lib/dom-parser.js inserts every parsed attribute through setAttributeNode, while NamedNodeMap.setNamedItem in lib/dom.js calls the linear getNamedItem or getNamedItemNS lookup for each insertion. A well-formed element with many distinct attributes therefore requires quadratic comparisons during DOMParser.parseFromString() and can stall a Node.js event loop before application validation. This issue is fixed in @xmldom/xmldom versions 0.8.15 and 0.9.12; no fixed version is available for xmldom.
Title xmldom: Quadratic-time attribute deduplication
Weaknesses CWE-407
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-04T01:57:57.829Z

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

Link: CVE-2026-83613

cve-icon Vulnrichment

Updated: 2026-09-04T01:57:48.272Z

cve-icon NVD

Status : Deferred

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

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

Link: CVE-2026-83613

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-01T14:38:49Z

Links: CVE-2026-83613 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-02T04:15:05Z

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity

  • CWE-606

    Unchecked Input for Loop Condition