Where
-Infinity
0
Severity
7.5
Double Free, Use After Free, Input Validation
AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:N/A:L

A stack overflow vulnerability exists in the libexpat library due to the way it handles recursive entity expansion in XML documents. When parsing an XML document with deeply nested entity references, libexpat can be forced to recurse indefinitely, exhausting the stack space and causing a crash. This issue could lead to denial of service (DoS) or, in some cases, exploitable memory corruption, depending on the environment and library usage.

1 / 36
Source: Launchpad
First published (updated )
Severity
7.5
Use After Free, Race Condition, Input Validation, Integer Overflow
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Accessibility. A privacy issue was addressed by removing sensitive data.

1 / 40
Source: Apple
First published (updated )
Severity
7.5
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L

libexpat before 2.8.0 uses insufficient entropy, and thus hash flooding can occur via a crafted XML document.

First published (updated )
Severity
7.5
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L

In libexpat before 2.8.1, the computational complexity of attribute name collision checks allows a denial of service via moderately sized crafted XML input.

First published (updated )
Severity
7

libexpat in Expat before 2.7.2 allows attackers to trigger large dynamic memory allocations via a small document that is submitted for parsing.

First published (updated )
Severity
7

In libexpat before 2.8.1, the computational complexity of attribute name collision checks allows a denial of service via moderately sized crafted XML input.

First published (updated )
Severity
6.9
Buffer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

In libexpat before 2.8.2, there is a heap-based buffer overflow in doProlog in xmlparse.c because scaffold backing array reallocation is mishandled when there is data-structure sharing across parsers.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

libexpat before 2.8.2 has an integer overflow in storeAtts.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

libexpat before 2.8.2 has an integer overflow in copyString.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

xmlwf in libexpat before 2.8.2 has an integer overflow in resolveSystemId.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

libexpat before 2.8.2 has an integer overflow in doProlog that is related to storeEntityValue and entity textLen.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

libexpat before 2.8.2 has an integer overflow in getAttributeId.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

libexpat before 2.8.2 has an integer overflow in XMLParseBuffer because it lacked a check that was present in XMLParse.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

libexpat before 2.8.2 has an integer overflow in addBinding.

First published (updated )
Severity
6.9
Integer Overflow
AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

xmlwf in libexpat before 2.8.2 has an integer overflow in endDoctypeDecl via NOTATION declarations.

First published (updated )
Severity
6.5
Integer Overflow
AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:L

xmlwf in libexpat before 2.8.2 has an integer overflow for the output filename when -d outputDir is used.

First published (updated )
Severity
6.3
EPSS
0.06%
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

xml.parsers.expat and xml.etree.ElementTree use insufficient entropy for Expat hash-flooding protection, which allows a crafted XML document to trigger hash flooding.\r\n\r\nFully mitigating this vulnerability requires both updating libexpat to 2.8.0 or later and applying this patch.

1 / 2
Source: MITRE
First published (updated )
Severity
5.9
Use After Free
AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L

libexpat before 2.8.2 lacks handler call depth tracking for calls to XMLGetBuffer, XMLParse, XMLParseBuffer, XMLParserFree, or XMLParserReset from within handlers in cases of a policy violation. Thus, a use-after-free can occur,

First published (updated )
Severity
5.9
Use After Free
AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L

libexpat before 2.8.2 does not consider XMLTOKDATACHARS in doCdataSection and thus lacks handler call depth tracking for various calls from within handlers in cases of a policy violation. Thus, a use-after-free can occur. NOTE: this issue exists because of an incomplete fix for CVE-2026-50219.

First published (updated )
Severity
4.9
Use After Free
AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L

libexpat before 2.8.2 lacks handler call depth tracking for calls to XMLResumeParser from within handlers in cases of a policy violation. Thus, a use-after-free can occur (similar to the CVE-2026-50219 situation).

First published (updated )
Severity
4

An issue was discovered in libexpat before 2.6.3. xmlparse.c does not reject a negative length for XMLParseBuffer.

First published (updated )
Severity
4
Integer Overflow

An issue was discovered in libexpat before 2.6.3. dtdCopy in xmlparse.c can have an integer overflow for nDefaultAtts on 32-bit platforms (where UINTMAX equals SIZEMAX).

First published (updated )
Severity
4

The libexpat library is vulnerable to a stack overflow due to uncontrolled recursion when processing deeply nested XML entities. This can cause the application to crash, resulting in a denial of service (DoS) or potentially leading to memory corruption, depending on the user's environment and how the library is used. The issue is triggered by supplying a specially crafted XML document designed to create a long chain of recursive entities.

First published (updated )

Hello oss-security,

just a quick note that libexpat 2.7.5 (or "Expat 2.7.5") released today is fixing three vulnerabilities.

Some key links are:

- The blog post about it: https://blog.hartwork.org/posts/expat-2-7-5-released/

- The change log of release 2.7.5 https://github.com/libexpat/libexpat/blob/R275/expat/Changes

- The fixing pull requests - https://github.com/libexpat/libexpat/pull/1158 - https://github.com/libexpat/libexpat/pull/1162 - https://github.com/libexpat/libexpat/pull/1163

- The official CVE metadata - https://nvd.nist.gov/vuln/detail/CVE-2026-32776 - https://nvd.nist.gov/vuln/detail/CVE-2026-32777 - https://nvd.nist.gov/vuln/detail/CVE-2026-32778

Best

Sebastian

Hello oss-security,

just a quick note that libexpat 2.8.0 (or "Expat 2.8.0") released two days ago is fixing CVE-2026-41080.

Some key links are:

- The blog post about it https://blog.hartwork.org/posts/expat-2-8-0-released/

- The change log of release 2.8.0 https://github.com/libexpat/libexpat/blob/R280/expat/Changes

- The fixing pull request https://github.com/libexpat/libexpat/pull/1183

- The official CVE metadata https://nvd.nist.gov/vuln/detail/CVE-2026-41080

Best

Sebastian

Hello oss-security,

just a quick note that libexpat 2.8.1 (or "Expat 2.8.1") released yesterday is fixing CVE-2026-45186:

Fix quadratic runtime from attribute name collision checks that allowed denial of service attacks through moderately sized crafted XML input (CWE-407). Please note that a layer of compression around XML can significantly reduce the minimum attack payload size.

Some key links are:

- The blog post about it https://blog.hartwork.org/posts/expat-2-8-1-released/

- The change log of release 2.8.1 https://github.com/libexpat/libexpat/blob/R281/expat/Changes

- The fixing pull request https://github.com/libexpat/libexpat/pull/1216

- The NVD CVE metadata https://nvd.nist.gov/vuln/detail/CVE-2026-45186

PS: The CVE database lists an unrealistically low CVSS score for this. The complexity of an attack is very low (not "High") and the attack vector is remote (not "Local"). I have asked Mitre to fix this earlier today. My blog post linked above has a few more words on that topic.

Best

Sebastian

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203