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.30 - 2000-10-05

  • Get rid of ContentStash global. Not that big a deal looking it up everytime and gets rid of a potential threading problem.
  • Switch to shareable library version of expat from sourceforge (i.e. no longer include expat source and require that libexpat be installed)
  • Bob Tribit <btribit@traffic.com> demonstrated a fix for problems in compiling under perl 5.6.0 with 5.005 threading.
  • Matt Sergeant <matt@sergeant.org> discovered a typo ('IO::Handler' instead of 'IO::Handle') in Expat.pm that caused IO::Handle objects to be treated as strings instead of handles.
  • Matt Sergeant also provided a patch to allow tied handles to work properly in calls to parse.
  • Eric Bohlman <ebohlman@netcom.com> reported a failure when incremental parsing and external parsing were used together. Need to give explicit package when calling Do_External_Parse from externalEntityRef otherwise fails when called through ExpatNB.

Modules

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

Provides

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