Skip to main content

ExtUtils::Typemaps::STL::List EUVDEUVD-2026-96315

| CVE-2026-107794 HIGH
Integer Underflow (CWE-191)
2026-10-10 CPANSec GHSA-h5wv-6qvp-x98v
7.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send input to XS-backed endpoint
  2. Exploit
    Force empty std::list return value
  3. Execution
    Trigger av_extend(av,-1) integer underflow
  4. Impact
    Allocate 2^32 slots and exhaust memory

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer underflow checks
Exploitation Conditions

Requires an application or XS module compiled against ExtUtils::Typemaps::STL::List before 1.07 that uses the OUTPUT typemap to convert a C++ std::list into a Perl array, AND a reachable code path where that list is empty - the typemap then calls av_extend(av, len-1), i.e. av_extend(av, -1), which underflows to request a 2^32-element (~32 GiB) allocation. Limiting factors that reduce real risk: the vulnerable typemap must actually be in use (non-default dependency), the attacker must be able to drive the function to an empty-list result, and the impact is confined to availability (process crash / memory exhaustion) with no code execution, data exposure, or integrity loss. A similar defect was already fixed in ExtUtils::Typemaps::STL::Vector 1.05, confirming the root cause class.

Impact

The CVSS 7.5 (HIGH) score is driven exclusively by availability impact (A:H) from memory exhaustion - the vector explicitly sets C:N/I:N, meaning there is NO confidentiality or integrity impact. This directly contradicts the 'Information Disclosure' tag in the input, which appears mislabeled; the real impact is denial of service only. Exploitation signals are weak: EPSS is 0.18% (7th percentile), there is no CISA KEV listing, and no public exploit code was identified. While the CVSS vector claims AV:N/AC:L/PR:N/UI:N (network, low-complexity, unauthenticated), real-world exploitability is heavily gated - the flaw lives in generated XS typemap code, so it is only reachable if an application was compiled against ExtUtils::Typemaps::STL::List <1.07 AND an attacker can force an empty std::list to be returned through the OUTPUT typemap. Net assessment: this is a high-CVSS-but-low-real-risk issue. The availability-only impact, extremely low EPSS, absence of KEV/POC, and niche developer-library footprint make it a low operational priority (patch during routine maintenance) rather than an urgent threat. The AV:N rating is optimistic and application-dependent - verify whether any exposed service actually routes attacker input into this typemap.

Exploit ScenarioDerived

An application built with ExtUtils::Typemaps::STL::List (<1.07) exposes an XS function that returns a std::list via the OUTPUT typemap. An attacker supplies input that causes the function to return an empty list, triggering av_extend(av, len-1) = av_extend(av, -1); the length underflows and Perl attempts to allocate a 2^32-slot (~32 GiB) array, exhausting memory and crashing the process. No public exploit code was identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Memory exhaustion in Perl's ExtUtils::Typemaps::STL::List before version 1.07 allows remote attackers to cause a denial of service via an empty list processed by the OUTPUT typemap, which triggers an integer underflow and a ~32 GiB allocation. This high-severity availability-only vulnerability (CVSS 7.5, C:N/I:N/A:H) requires a compiled XS module that uses the vulnerable typemap and a reachable code path with an empty list. No public exploit code has been identified at time of analysis, and the EPSS score is low (0.18%, percentile 7%).

RemediationAI

Vendor-released patch: upgrade ExtUtils::Typemaps::STL::List to version 1.07 or later, which is included in the ExtUtils-Typemaps-Default 1.07 release (https://metacpan.org/release/SMUELLER/ExtUtils-Typemaps-Default-1.07/changes). After upgrading, any XS modules that were compiled against the vulnerable typemap must be recompiled to incorporate the fix. If an immediate upgrade is not possible, module authors can manually patch the typemap to check for an empty list before calling av_extend (e.g., adding a conditional to avoid len-1 when len=0), but this requires code changes and recompilation. No runtime workaround exists for end-users; the vulnerability is only exploitable when the compiled typemap is used with an empty list. For further information, consult the advisory at https://seclists.org/oss-sec/2026/q4/131 and the CPAN bug tracker at https://rt.cpan.org/Public/Bug/Display.html?id=91213.

Affected ProductsAI

Perl module ExtUtils::Typemaps::STL::List versions before 1.07 are affected. The module is part of the ExtUtils-Typemaps-Default distribution; the fix is included in release 1.07 (see https://metacpan.org/release/SMUELLER/ExtUtils-Typemaps-Default-1.07/changes). The related Vector typemap was patched in version 1.05. CPE strings are not provided in the available data, but the affected component is the List OUTPUT typemap used for converting std::list to Perl arrays. Additional details are available in the CPAN RT ticket https://rt.cpan.org/Public/Bug/Display.html?id=91213 and the oss-security advisory https://seclists.org/oss-sec/2026/q4/131.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in the Perl XS typemap ExtUtils::Typemaps::STL::List, which converts C++ std::list objects into Perl arrays when building XS modules. The OUTPUT typemap calls av_extend(av, len-1); when the list is empty (len=0), len-1 underflows to a huge value, causing av_extend to allocate an array with 2^32 slots (~32 GiB), exhausting memory. This is a classic integer underflow (CWE-191). The defect is fixed in version 1.07 of the distribution ExtUtils::Typemaps::Default. A similar flaw was previously addressed in ExtUtils::Typemaps::STL::Vector version 1.05, confirming the root cause class. Affected systems are those built with the vulnerable typemap; no confidentiality or integrity impact is present, only availability.

Know when Perl gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CPANSec) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Empty-list underflow fires automatically with no auth or interaction; impact is memory-exhaustion DoS only, hence C:N/I:N/A:H; AV:N retained but is application-exposure dependent.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

3
CVSS changed
Oct 16, 2026 - 20:42 NVD
7.5 (HIGH)
CVE Published
Oct 10, 2026 - 12:45 cve.org
HIGH 7.5
CVE Published
Oct 10, 2026 - 12:45 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

ExtUtils::Typemaps::STL::List versions before 1.07 for Perl allocate a 32 GiB array on an empty list.

The OUTPUT typemaps call av_extend( av, len-1 ). On an empty list, this undeflows, and av_extend will allocate an array with 2^32 slots, leading to memory exhaustion.

Note that a similar issue was fixed in ExtUtils::Typemaps::STL::Vector version 1.05.

Executive ViewAI

Why It Matters

Perl's ExtUtils::Typemaps::STL::List versions before 1.07 can be forced to exhaust memory via an empty-list handling flaw, causing a denial of service in affected Perl applications that compile and expose XS modules using the vulnerable typemap. Because exploitation requires a reachable code path that processes an empty list, only a subset of Perl services is likely affected, but any impacted service could become unavailable. Leadership should prioritize inventory and mitigation because no public exploit is identified at this time and no vendor patch is available, making proactive controls the primary defense.

Business Impact: Medium
Compensating Controls

No vendor patch available; use process memory limits (ulimit/cgroups), enforce input validation to reject empty lists before typemap processing, restrict network exposure of affected Perl services, monitor for large memory allocations, and apply vendor update when released (target 1.07 or later).

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Rare
obscure developer-only Perl XS typemap helper, negligible production footprint
Social Media
3
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

More in Perl

View all
CVE-2012-6329 HIGH POC
7.5 Jan 04

The _compile function in Maketext.pm in the Locale::Maketext implementation in Perl before 5.17.7 does not properly hand

CVE-2017-12814 CRITICAL POC
9.8 Sep 28

Stack-based buffer overflow in the CPerlHost::Add method in win32/perlhost.h in Perl before 5.24.3-RC1 and 5.26.x before

CVE-2015-8608 CRITICAL POC
9.8 Feb 07

The VDir::MapPathA and VDir::MapPathW functions in Perl 5.22 allow remote attackers to cause a denial of service (out-of

CVE-2018-18314 CRITICAL POC
9.8 Dec 07

Perl before 5.26.3 has a buffer overflow via a crafted regular expression that triggers invalid write operations. Rated

CVE-2018-18312 CRITICAL POC
9.8 Dec 05

Perl before 5.26.3 and 5.28.0 before 5.28.1 has a buffer overflow via a crafted regular expression that triggers invalid

CVE-2018-18313 CRITICAL POC
9.1 Dec 07

Perl before 5.26.3 has a buffer over-read via a crafted regular expression that triggers disclosure of sensitive informa

CVE-2016-2381 HIGH
7.5 Apr 08

Perl might allow context-dependent attackers to bypass the taint protection mechanism in a child process via duplicate e

CVE-2023-31484 HIGH POC
8.1 Apr 29

CPAN.pm before 2.35 does not verify TLS certificates when downloading distributions over HTTPS. Rated high severity (CVS

CVE-2016-6185 HIGH POC
7.8 Aug 02

The XSLoader::load method in XSLoader in Perl does not properly locate .so files when called in a string eval, which mig

CVE-2018-12015 HIGH POC
7.5 Jun 07

In Perl through 5.26.2, the Archive::Tar module allows remote attackers to bypass a directory-traversal protection mecha

CVE-2020-10543 HIGH
8.2 Jun 05

Perl before 5.30.3 on 32-bit platforms allows a heap-based buffer overflow because nested regular expression quantifiers

CVE-2015-8853 HIGH
7.5 May 25

The (1) S_reghop3, (2) S_reghop4, and (3) S_reghopmaybe3 functions in regexec.c in Perl before 5.24.0 allow context-depe

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy