CVE-2026-56405: libexpat integer overflow in getAttributeId

CVE-2026-56405 · Severity: medium · CVSS 6.9 · Published 2026-06-21

libexpat is a widely used software library for parsing XML data. A vulnerability in how it handles attribute names could allow an attacker to cause a system crash or potentially gain unauthorized access to information. This issue affects applications that process untrusted XML files using older versions of the library.

Technologies: Libexpat Project Expat. Vendors: Libexpat Project.

Quick answers

Is CVE-2026-56405 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-56405 being exploited in the wild.
How severe is CVE-2026-56405?
Medium severity, with a CVSS score of 6.9, published 21 June 2026.
Which products and versions are affected?
Libexpat Project Expat before 2.8.2.
Is there a fix for CVE-2026-56405?
A patch was published on 2026-05-29: Fix merged into master branch via pull request 1251 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-56405 attacked?
It is attacked with local access, in a software library.
Am I affected by CVE-2026-56405?
Check whether you run Libexpat Project Expat at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

An integer overflow vulnerability exists in the getAttributeId function within expat/lib/xmlparse.c of libexpat. The flaw occurs during a loop that scans attribute names for a prefix colon, where a signed integer counter (i) can increment past its maximum value (INT_MAX) when processing specifically crafted, large attribute names. While the name length is typically bounded by pool block size, the post-increment operation constitutes undefined behavior at the boundary. An attacker could potentially exploit this via a local attack vector to cause a denial of service or achieve memory corruption. The issue is addressed in version 2.8.2 by guarding the counter against INT_MAX.

Affected products

  • libexpat project libexpat before 2.8.2

Timeline

  • 2026-05-29: patched: Fix merged into master branch via pull request 1251
  • 2026-06-21: disclosed: CVE published to NVD

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.