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.27 - 1999-09-25

  • Corrected documentation in Parser.pm
  • Deal with XML_NS and XML_BYTE_ORDER macros in Expat/Makefile.PL
  • Chris Thorman <chris@thorman.com> noted that "require 'URI::URL.pm'" in Parser.pm was in error (should be "require 'URI/URL.pm'")
  • Andrew McNaughton <andrew@scoop.co.nz> noted "use English" and use of '$&' slowed down regex handling for whole application, so they were excised from XML::Parser::Expat.
  • Work around "modification of read-only value" bug in perl 5.004
  • Enno Derksen <enno@att.com> reported that the Doctype handler wasn't being called when ParseParamEnt was set.
  • Now using Version 19990728 of expat, with local patches.
  • Got rid of shadow buffer o thus fixed the error reported by Ashley Sanders <a.sanders@mcc.ac.uk> o and removed ExpatNB limitations that Peter Billam <music@pjb.com.au> noted.
  • Vadim Konovalov <vkonovalov@lucent.com> had a problem compiling for multi-threading that was fixed by changing Perl_sv_setsv to sv_setsv.
  • Added new Expat method: skip_until(index)
  • Backward incompatible change to method xml_escape: to get former behavior use $xp->xml_escape($string, '>', ...)
  • Added utility, canonical, to samples

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 Expat/Expat.pm
in Parser.pm
in Parser.pm
in Parser.pm
in Parser.pm