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 versions 0.3.0 through 0.6.0, two independent quadratic paths can cause denial of service. In lib/sax.js, parseElementStartPart repeatedly rescans a malformed tag name to the next > during single-character recovery; in lib/dom.js, normalize() repeatedly removes and appends adjacent text nodes, causing quadratic reindexing and string rebuilding. The first path is reachable through default DOMParser.parseFromString() processing, while the second is also reachable through a direct normalize() call on a programmatically constructed DOM, and endDocument invokes that normalization after parsing. 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
Action: Apply Patch
AI Analysis

Impact

xmldom, a pure JavaScript XML library, contains two independent quadratic algorithms that can be triggered by malformed XML inputs. The bug in parseElementStartPart causes repeated rescanning of malformed tag names, while normalize() repeatedly merges adjacent text nodes, each operation growing quadratically with input size. When an attacker supplies a crafted XML document or a programmatically constructed DOM that invokes normalize(), the parser can consume disproportionate CPU and memory resources, leading to a denial of service that may crash or stall the host application. The weakness is made explicit in CWE‑400 for uncontrolled resource consumption, CWE‑407 for quadratic time complexity, and CWE‑1333 for untrusted input handling.

Affected Systems

The affected modules are the @xmldom/xmldom package versions prior to 0.8.15 and 0.9.12, and the legacy xmldom package versions 0.3.0 through 0.6.0. Projects that depend on these libraries or import them directly are susceptible. No fixed version exists for the legacy xmldom package; only the @xmldom/xmldom releases from 0.8.15 onward include the remediation.

Risk and Exploitability

The vulnerability is scored CVSS 8.7, indicating a significant impact on availability. A direct exploit is achievable by feeding the parser with specially crafted XML or by calling normalize() on a maliciously constructed DOM, requiring only standard input. Because the EPSS score is unavailable, the exact exploitation likelihood is unclear, and the vulnerability is not listed in the CISA KEV catalog. However, the presence of quadratic behaviour in critical parsing routines highlights the need for immediate patching or mitigation to preserve application uptime.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to @xmldom/xmldom 0.8.15, 0.9.12 or later to apply the fix.
  • If using the unsupported legacy xmldom 0.3.0‑0.6.0, remove it and switch to @xmldom/xmldom or an alternative XML parser.
  • As an interim workaround, validate or limit the size of XML documents and reject malformed tag names before invoking parseFromString or normalize(), and consider adding a parsing timeout to mitigate resource exhaustion.

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-93r5-fhx6-vmg9 xmldom: Quadratic-time parsing via the malformed-input recovery path — `parseElementStartPart` re-scan and `normalize()` adjacent-text merge
History

Wed, 02 Sep 2026 08:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


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

Type Values Removed Values Added
Weaknesses CWE-1333
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 versions 0.3.0 through 0.6.0, two independent quadratic paths can cause denial of service. In lib/sax.js, parseElementStartPart repeatedly rescans a malformed tag name to the next > during single-character recovery; in lib/dom.js, normalize() repeatedly removes and appends adjacent text nodes, causing quadratic reindexing and string rebuilding. The first path is reachable through default DOMParser.parseFromString() processing, while the second is also reachable through a direct normalize() call on a programmatically constructed DOM, and endDocument invokes that normalization after parsing. 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 parsing via the malformed-input recovery path — `parseElementStartPart` re-scan and `normalize()` adjacent-text merge
Weaknesses CWE-400
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-01T18:05:37.783Z

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

Link: CVE-2026-83614

cve-icon Vulnrichment

Updated: 2026-09-01T17:41:35.772Z

cve-icon NVD

Status : Deferred

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

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

Link: CVE-2026-83614

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-01T14:41:42Z

Links: CVE-2026-83614 - Bugzilla

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-1333

    Inefficient Regular Expression Complexity

  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-407

    Inefficient Algorithmic Complexity