CVE-2026-66046 PUBLISHED

Expat Denial of Service via storeAtts() Quadratic Complexity

Assigner: VulnCheck
Reserved: 23.07.2026 Published: 18.08.2026 Updated: 18.08.2026

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.

Metrics

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
CVSS Score: 8.7

Product Status

Vendor libexpat project
Product libexpat
Versions Default: affected
  • affected from 0 to 2.8.3 (incl.)

Credits

  • Fabian Wahle (Hap Security) finder
  • Sebastian Pipping remediation developer
  • VulnCheck coordinator

References

Problem Types

  • Inefficient Algorithmic Complexity CWE