Skip to content
NewA calmer, faster ZeroHour
VulnerabilityPoC ×22 · 1 read

CVE-2026-66046

Unauthenticated DoS via Quadratic Complexity in Expat (libexpat) storeAtts()

CVSS 4.0
8.7 high
EPSS
<1%p55
Published
·
Modified
Analyze CVE-2026-66046 with Vani AIImpact, affected versions, exploitation status, mitigations and detection

Expat (libexpat) through version 2.8.3 contains a denial-of-service flaw caused by quadratic algorithmic complexity in the storeAtts() function of xmlparse.c: when a document specifies N attributes with non-normalized values, the parser performs an O(N^2) linear scan of the element type's defaultAtts array to determine CDATA status. Because the flaw requires only default parser options, a remote unauthenticated attacker can trigger it by submitting a single well-formed XML document of just a few megabytes to any application that parses untrusted XML with libexpat; no authentication, external entity resolution, or non-default parser settings are needed. The attacker gains excessive CPU consumption that degrades or halts the affected service, with no data exposure, tampering, or code execution. Anyone running applications, services, or devices that embed or link libexpat to process attacker-controlled XML is affected, since the library ships by default with nearly all Linux distributions and is bundled in a vast number of applications, language bindings, and firmwares. Exploitation has not been observed in the wild (no KEV listing, EPSS ~0.6%), but public technical analyses and proof-of-concept references are available and the issue is rated 8.7 (high) under CVSS 4.0.

What to do: Upgrade libexpat to the first fixed release after 2.8.3 incorporating the storeAtts() fix (see upstream PR #1321) or apply your distribution's security patch. Inventory all copies of expat in the environment — including statically linked or bundled copies in applications and appliances that a system update will not reach — and, as interim mitigation, cap accepted XML payload sizes and attribute counts and enforce CPU/time limits on XML processing.

ProductAffected
libexpat project libexpatall versions through and including 2.8.3
Estimated exposure
masshundreds of millions of installations potentially exposed (libexpat ships by default in virtually every Linux distribution and is embedded in countless… — libexpat is a foundational C XML parser included by default in nearly all Linux distributions and bundled in a huge population of applications, language bindings, and device firmware, so the theoretical surface spans hundreds of millions…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description · NVD

Expat through 2.8.3 contains a denial of service vulnerability caused by quadratic algorithmic complexity in the storeAtts() function in xmlparse.c, where processing N specified attributes with non-normalized values triggers an O(N^2) linear scan of elementType->defaultAtts to determine CDATA status. A remote unauthenticated attacker can supply a single well-formed XML document of a few megabytes to an application parsing untrusted XML to cause excessive CPU consumption, resulting in denial of service without requiring authentication, external entity resolution, or non-default parser options.

Vendors
libexpat project
Products
libexpat
Weakness
CWE-407
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

1 story