CVE-2026-66046
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.
Scoring
- Severity
- HIGH
- CVSS base score
- 8.7
- CVSS 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
- EPSS probability
- 0.59%
- CWE
- CWE-407
- Published
- 2026-08-18
- Last modified
- 2026-08-21
Affected products
- libexpat project libexpat
Weakness type
Related vulnerabilities
- CVE-2026-87822 — t-digest 3.1 through 3.3 Denial of Service via NaN Centroid Means in MergingDigest.fromBytes
- CVE-2024-58382 — league/commonmark before 2.6.0 Denial of Service via Quadratic Complexity
- CVE-2023-54395 — PocketMine-MP before 4.12.5 Denial of Service via ModalFormResponsePacket
- CVE-2026-86435 — commonmark 1.5.0 before 2.8.4 Denial of Service via Footnote
- CVE-2026-86434 — commonmark 2.0.0 through 2.8.3 Denial of Service via Slug Collision
- CVE-2026-86433 — commonmark 1.5.0 before 2.8.4 Denial of Service via Attributes
- CVE-2026-86430 — league/commonmark before 2.9.1 Denial of Service via parsing
- CVE-2026-86429 — commonmark before 2.9.1 Denial of Service via SmartPunct and Attributes