Security Advisories (2)
CVE-2006-10002 (2026-03-19)

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.

CVE-2006-10003 (2026-03-19)

XML::Parser versions through 2.47 for Perl has an off-by-one heap buffer overflow in st_serial_stack. In the case (stackptr == stacksize - 1), the stack will NOT be expanded. Then the new value will be written at location (++stackptr), which equals stacksize and therefore falls just outside the allocated buffer. The bug can be observed when parsing an XML file with very deep element nesting

Changes for version 2.21 - 1999-03-21

  • Warren Vik <wvik@whitebarn.com> provided patches for a bug introduced with the is_defaulted method. It manifested itself by bogusly reporting duplicate attributes.
  • Now using latest expat from ftp://ftp.jclark.com/pub/test/expat.zip, Version 19990307. (Plus any patches in Expat/expat.patches.)
  • As suggested by Tim Bray, added an xml_escape method to Expat.
  • Murray Nesbitt <murray@activestate.com> had build problems on Win32 that were solved by swapping 2 include files in Expat.xs
  • Added following Expat namespace methods: new_ns_prefixes expand_ns_prefix current_ns_prefixes
  • Fixed memory handling in recognized_string method to get rid of "Attempt to free unreferenced scalar" bug.

Modules

Lowlevel access to James Clark's expat XML parser
A perl module for parsing XML documents

Provides

in Parser.pm
in Expat/Expat.pm
in Parser.pm
in Parser.pm
in Parser.pm
in Parser.pm