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.
Published: 2026-03-19
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Heap corruption leading to crashes and potential denial of service
Action: Immediate Patch
AI Analysis

Impact

The flaw exists in Perl's XML::Parser up to version 2.45, where the decoded characters returned by Perl's read() do not match the raw UTF‑8 bytes held by SvPV(). This mismatch allows parse_stream() to overrun its allocated buffer, corrupting the heap and causing a double free or other memory corruption. The resulting crashes are a classic buffer‑overflow problem classified under CWE‑122, CWE‑131, and CWE‑176, with a CVSS score of 9.8 that signals a critical risk to confidentiality, integrity, and availability.

Affected Systems

The vulnerability affects the XML::Parser module from the TODDR project, specifically versions 2.45 and earlier. It impacts any Perl installation that uses this library to parse XML streams, regardless of the underlying operating system or environment. The product is identified by the CPE as a Perl module for XML parsing.

Risk and Exploitability

The CVSS rating of 9.8 highlights a severe denial‑of‑service potential. EPSS indicates the likelihood of exploitation is below 1%, and the vulnerability is not listed in the CISA KEV catalog, suggesting no widespread exploitation has been documented. Based on the description, it is inferred that the attack vector involves delivering specially crafted XML input to the parse_stream() call, which is commonly exposed in Perl applications that accept external XML. An attacker with access to such input could trigger the heap corruption and cause the consuming process to crash, potentially affecting services or systems running with elevated privileges. The overall risk is high, though the current probability of exploitation remains low.

Generated by OpenCVE AI on March 21, 2026 at 13:20 UTC.

Remediation

Vendor Solution

Apply the patch that has been publicly available since 2006-06-13 or upgrade to version 2.46 or later.


Vendor Workaround

Apply the patch that has been publicly available since 2006-06-13.


OpenCVE Recommended Actions

  • Upgrade XML::Parser to version 2.46 or later
  • If an upgrade is not feasible, apply the public patch available since 2006-06-13
  • Verify that any XML data processed by the application originates from trusted sources and is validated before parsing

Generated by OpenCVE AI on March 21, 2026 at 13:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4522-1 libxml-parser-perl security update
Ubuntu USN Ubuntu USN USN-8174-1 XML::Parser vulnerabilities
History

Mon, 23 Mar 2026 01:45:00 +0000

Type Values Removed Values Added
References

Sat, 21 Mar 2026 12:00:00 +0000

Type Values Removed Values Added
Description XML::Parser versions through 2.47 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. 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.
Title XML::Parser versions through 2.47 for Perl could overflow the pre-allocated buffer size cause a heap corruption (double free or corruption) and crashes 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
References

Fri, 20 Mar 2026 09:00:00 +0000

Type Values Removed Values Added
First Time appeared Toddr xml::parser
Vendors & Products Toddr xml::parser

Fri, 20 Mar 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-131
References
Metrics threat_severity

None

threat_severity

Moderate


Thu, 19 Mar 2026 18:45:00 +0000

Type Values Removed Values Added
First Time appeared Toddr
Toddr xml\
CPEs cpe:2.3:a:toddr:xml\:\:parser:*:*:*:*:*:perl:*:*
Vendors & Products Toddr
Toddr xml\

Thu, 19 Mar 2026 18:30:00 +0000

Type Values Removed Values Added
References

Thu, 19 Mar 2026 18:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 19 Mar 2026 11:30:00 +0000

Type Values Removed Values Added
Description XML::Parser versions through 2.47 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.
Title XML::Parser versions through 2.47 for Perl could overflow the pre-allocated buffer size cause a heap corruption (double free or corruption) and crashes
Weaknesses CWE-122
CWE-176
References

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-04-29T14:36:41.837Z

Reserved: 2026-03-16T22:47:45.685Z

Link: CVE-2006-10002

cve-icon Vulnrichment

Updated: 2026-03-22T23:06:42.361Z

cve-icon NVD

Status : Modified

Published: 2026-03-19T12:16:16.120

Modified: 2026-03-23T00:16:47.833

Link: CVE-2006-10002

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-03-19T11:03:46Z

Links: CVE-2006-10002 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-03-25T11:55:19Z

Weaknesses