Name
expat
Version
2.6.4
Type
library
Description
A stream-oriented XML parser library
Licenses
MIT
PURL
-
CPE
cpe:2.3:*:libexpat_project:libexpat:2.6.4:*:*:*:*:*:*:*
Other Versions#
Patches#
#
Title
Author
Resolve
1
lib: Make function copyString use macro MALLOC
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
2
Changes: Document allocation tracking
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
3
lib: Exclude the content model from allocation tracking
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
4
Fix NULL function-pointer dereference for empty external
Francesco Bertolaccini <francesco.bertolaccini@trailofbits.com>
CVE-2026-32776
5
copy prefix name to pool before lookup
laserbear <10689391+Laserbear@users.noreply.github.com>
CVE-2026-32778
6
Changes: Document pull request #1047
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
7
tests: Cover indirect entity recursion
Sebastian Pipping <sebastian@pipping.org>
8
lib: Document and regression-proof absence of integer
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
9
tests: Add line/column checks to async entity tests
=?UTF-8?q?Berkay=20Eren=20=C3=9Cr=C3=BCn?= <berkay.ueruen@tum.de>
CVE-2024-8176
10
lib: Introduce an integer overflow check for tag buffer
Matthew Fernandez <matthew.fernandez@gmail.com>
CVE-2026-25210
11
lib: Make function dtdCreate use macro MALLOC
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
12
lib: Exclude XML_Mem* functions from allocation tracking
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
13
lib: Fix detection of asynchronous tags in entities
=?UTF-8?q?Berkay=20Eren=20=C3=9Cr=C3=BCn?= <berkay.ueruen@tum.de>
CVE-2024-8176
14
xmlwf: Mention supported environment variables in --help
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
15
lib: Drop casts around malloc/realloc returns that C99 does
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
16
test that we do not end up with a zombie PREFIX in the
laserbear <10689391+Laserbear@users.noreply.github.com>
CVE-2026-32778
17
Stop updating event pointer on exit for reentry (fixes #980)
Peter Marko <peter.marko@siemens.com>
CVE-2024-8176
18
tests: Fix test guard for test related to allocation tracking
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
19
tests: Cover effect of XML_SetUnknownEncodingHandler user
Sebastian Pipping <sebastian@pipping.org>
CVE-2026-24515
20
tests: Cover allocation tracking and limiting with tests
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
21
lib: Make string pools use macros MALLOC, FREE, REALLOC
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
22
tests: Cover XML_ERROR_ASYNC_ENTITY cases
Sebastian Pipping <sebastian@pipping.org>
CVE-2024-8176
23
fuzz: Be robust towards NULL return from
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
24
misc_tests.c: Cover XML_TOK_INSTANCE_START infinite loop
Sebastian Pipping <sebastian@pipping.org>
CVE-2026-32777
25
xmlwf: Wire allocation tracker config to existing arguments
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
26
lib: Make function dtdDestroy use macro FREE
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
27
docs: Promote the contract to call XML_FreeContentModel
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
28
lib: Implement tracking of dynamic memory allocations
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
29
lib: Realign a size with the `REALLOC` type signature it is
Matthew Fernandez <matthew.fernandez@gmail.com>
CVE-2026-25210
30
lib: Exclude the main input buffer from allocation tracking
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
31
lib: Make XML_ExternalEntityParserCreate copy unknown
Sebastian Pipping <sebastian@pipping.org>
CVE-2026-24515
32
lib: Make function hash tables use macros MALLOC and FREE
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
33
tests: Add new test test_alloc_tracker_pointer_alignment
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
34
lib: Make a doubling more readable
Matthew Fernandez <matthew.fernandez@gmail.com>
CVE-2026-25210
35
lib: Reject XML_TOK_INSTANCE_START infinite loop in
Sebastian Pipping <sebastian@pipping.org>
CVE-2026-32777
36
lib: Make XML_MemFree and XML_FreeContentModel match their
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
37
lib: Make function dtdReset use macro FREE
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
38
docs: Document the two allocation tracking API functions
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
39
lib: Fix alignment of internal allocations for some non-amd64
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
40
lib: Make function dtdCopy use macro MALLOC
Sebastian Pipping <sebastian@pipping.org>
CVE-2025-59375
41
[CVE-2024-8176] Resolve the recursion during entity
Peter Marko <peter.marko@siemens.com>
CVE-2024-8176
Vulnerabilities#
Name
Analysis
Description
Exploitable
libexpat before 2.8.2 does not consider XML_TOK_DATA_CHARS 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.
Exploitable
xmlwf in libexpat before 2.8.2 has an integer overflow in endDoctypeDecl via NOTATION declarations.
Exploitable
xmlwf in libexpat before 2.8.2 has an integer overflow in resolveSystemId.
Exploitable
xmlwf in libexpat before 2.8.2 has an integer overflow for the output filename when -d outputDir is used.
Exploitable
libexpat before 2.8.2 has an integer overflow in copyString.
Exploitable
libexpat before 2.8.2 has an integer overflow in doProlog that is related to storeEntityValue and entity textLen.
Exploitable
libexpat before 2.8.2 has an integer overflow in XML_ParseBuffer because it lacked a check that was present in XML_Parse.
Exploitable
libexpat before 2.8.2 has an integer overflow in getAttributeId.
Exploitable
libexpat before 2.8.2 has an integer overflow in addBinding.
Exploitable
libexpat before 2.8.2 has an integer overflow in storeAtts.
Exploitable
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.
Exploitable
libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_ResumeParser from within handlers in cases of a policy violation. Thus, a use-after-free can occur (similar to the CVE-2026-50219 situation).
Exploitable
libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_GetBuffer, XML_Parse, XML_ParseBuffer, XML_ParserFree, or XML_ParserReset from within handlers in cases of a policy violation. Thus, a use-after-free can occur,
Exploitable
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.
Exploitable
libexpat before 2.8.0 uses insufficient entropy, and thus hash flooding can occur via a crafted XML document.
Patched
libexpat before 2.7.5 allows a NULL pointer dereference in the function setContext on retry after an earlier ouf-of-memory condition.
Patched
libexpat before 2.7.5 allows an infinite loop while parsing DTD content.
Patched
libexpat before 2.7.5 allows a NULL pointer dereference with empty external parameter entity content.
Patched
In libexpat before 2.7.4, the doContent function does not properly determine the buffer size bufSize because there is no integer overflow check for tag buffer reallocation.
Patched
In libexpat before 2.7.4, XML_ExternalEntityParserCreate does not copy unknown encoding handler user data.
Exploitable
In libexpat through 2.7.3, a crafted file with an approximate size of 2 MiB can lead to dozens of seconds of processing time.
Patched
libexpat in Expat before 2.7.2 allows attackers to trigger large dynamic memory allocations via a small document that is submitted for parsing.
Patched
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.