CVE-2026-83619: xmldom: End-tag Whitespace-Trim Regex ReDoS — quadratic backtracking in the 0.8.x end-tag parser

Published Sep 1, 2026
·
Updated

xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. From 0.7.0 until 0.8.15, the release-0.8.x parser in lib/sax.js trims captured end-tag names with the unanchored global expression /[ \t\n\r]+$/g. For an end tag containing a long whitespace run followed by a non-whitespace character, the expression retries from each possible starting position and backtracks quadratically before failing its end anchor. DOMParser.parseFromString() reaches the path under default options, allowing a small unauthenticated XML input to stall the Node.js event loop; the 0.9.x and unscoped npm lines do not contain this expression. This issue is fixed in @xmldom/xmldom version 0.8.15.

Affected Software

1 affected component
npm/xmldom>=0.7.0<0.8.15

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade @xmldom/xmldom to a version that resolves this vulnerability.

    Fixed in 0.8.15

Event History

Sep 1, 2026
CVE Published
via MITRE·02:51 PM
Data Sourced
via MITRE·02:51 PM
DescriptionWeakness

Frequently Asked Questions

1

Which deployments are exposed?

Deployments using the release-0.8.x parser in xmldom from 0.7.0 through versions before 0.8.15 are affected. The 0.9.x and unscoped npm lines do not contain the vulnerable expression.

2

Does exploitation require a non-default parser configuration or authentication?

No. DOMParser.parseFromString() reaches the vulnerable path under default options, and a small unauthenticated XML input can trigger it.

3

What input pattern triggers the event-loop stall?

An attacker needs to supply an XML end tag with a long run of whitespace followed by a non-whitespace character. This causes quadratic backtracking while the parser trims the captured end-tag name.

4

What should be done to remediate the issue?

Upgrade @xmldom/xmldom to version 0.8.15. The issue is fixed in that version.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203