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.
Fix
Patch, vendor advisory and mitigation references on NVD 2
- https://github.com/libexpat/libexpat/pull/1321 Exploit, Patch, Vendor Advisory
- https://www.vulncheck.com/advisories/expat-denial-of-service-via-storeatts-quadratic-complexity Exploit, Patch, Third Party Advisory
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 8.7 · libexpat_projectNVD modified 2026-10-22 22:10
Affected (CPE criteria) 1
cpe:2.3:a:libexpat_project:libexpat:*:*:*:*:*:*:*:*
References 2
- https://github.com/libexpat/libexpat/pull/1321 Exploit, Patch, Vendor Advisory
- https://www.vulncheck.com/advisories/expat-denial-of-service-via-storeatts-quadratic-complexity Exploit, Patch, Third Party Advisory