Description
XML::Parser versions through 2.45 for Perl could overflow the pre-allocated buffer size cause a heap corruption (double free or corruption) and crashes. A :utf8 PerlIO layer, parse_stream() in Expat.xs could overflow the XML input buffer because Perl's read() returns decoded characters while SvPV() gives back multi-byte UTF-8 bytes that can exceed the pre-allocated buffer size. This can cause heap corruption (double free or corruption) and crashes.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
TODDR XML::Parser
Default version status: unaffected
0 to ≤ 2.45affected
References
- https://rt.cpan.org/Ticket/Display.html?id=19859 ↗
- https://github.com/cpan-authors/XML-Parser/issues/64 ↗
- https://metacpan.org/release/TODDR/XML-Parser-2.46/changes ↗
- https://github.com/cpan-authors/XML-Parser/commit/56b0509dfc6b559cd7555ea81ee62e3622069255.patch ↗
- http://www.openwall.com/lists/oss-security/2026/03/19/1 ↗
- http://www.openwall.com/lists/oss-security/2026/03/22/3 ↗