OESA-2026-3672
Dashboard / Vulnerabilities / OESA-2026-3672
OESA-2026-3672
Summary: expat security update
Details: expat is a stream-oriented XML parser library written in C. expat excels with files too large to fit RAM, and where performance and flexibility are crucial. Security Fix(es): 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.(CVE-2026-66046) Expat through 2.8.3 contains an out-of-bounds read vulnerability that allows attackers to trigger memory corruption by processing XML with external entity parsers created via XML_ExternalEntityParserCreate. A struct size mismatch between ELEMENT_TYPE members causes storeAtts to read the attIndex member past allocated memory boundaries, resulting in failure to normalize whitespace in non-CDATA attributes or a wild pointer dereference causing a segfault. This vulnerability was introduced by the fix for CVE-2026-66046.(CVE-2026-76641) libexpat before 2.8.4 lacks handler call depth tracking with custom encoding callbacks. Thus, a use-after-free can occur. NOTE: this is similar to CVE-2026-50219, CVE-2026-56131 and CVE-2026-56412.(CVE-2026-76957)
References: https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3672, https://nvd.nist.gov/vuln/detail/CVE-2026-66046, https://nvd.nist.gov/vuln/detail/CVE-2026-76641, https://nvd.nist.gov/vuln/detail/CVE-2026-76957
Affected packages
Package
Name: expat
Purl: pkg:rpm/openEuler/expat&distro=openEuler-24.03-LTS-SP3
Affected ranges
Type: ECOSYSTEM
Events:
