Expat through version 2.8.3 contains an out-of-bounds read vulnerability triggered when processing XML with external entity parsers created via XML_ExternalEntityParserCreate. A struct size mismatch between ELEMENT_TYPE members causes the storeAtts function to read the attIndex member past allocated memory boundaries. This can result in failure to normalize whitespace in non-CDATA attributes or a wild pointer dereference leading to a segfault. The vulnerability allows attackers to trigger memory corruption through specially crafted XML input. Notably, this vulnerability was introduced as a regression by the fix applied for CVE-2026-66046. Patches are available via a commit to the libexpat GitHub repository and referenced in pull request #1331. The issue is also documented by VulnCheck in their advisories.