IT SBIT Services
Schneeberger
DEEN
CVE tracker

Perl ExtUtils::Typemaps::Default: Out-of-bounds read in T_STD_STRING typemap

CVE-2026-107373Critical 9.1

← All vulnerabilities

Summary

ExtUtils::Typemaps::Default before version 1.06 generates code for the T_STD_STRING typemap that may read the length of a Perl scalar before converting it to a string. If the argument is not a string, for example a number or a reference, the length read can be invalid. This can make the affected program abort or crash. The problem is triggered when such values reach XS functions built with this typemap, so exposure depends on the software in use; the impact is mainly availability.

Affected

  • ExtUtils::Typemaps::Default versions before 1.06
  • Perl XS modules built with an affected version

Fixed in

  • Version 1.06 or later

Workaround

  • No vendor workaround is documented for systems that cannot be upgraded.
  • Ensure that arguments passed to affected modules are strings, or validate argument types before the call.

Exploitation

  • No known exploitation.
  • CISA SSVC: exploitation none, automatable yes, technical impact partial.

Our recommendation

  • Identify Perl installations and XS modules that use ExtUtils::Typemaps::Default, including custom software.
  • Update to version 1.06 or later and rebuild dependent modules.
  • Install the distribution updates for OS-managed Perl packages.
  • Where patching is not possible, validate input types before they reach affected functions.
  • The CVSS score of 9.1 is disputed (Ubuntu rates it low), so prioritise by actual exposure.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 07:00.

Original description (NVD)

ExtUtils::Typemaps::STL::String versions before 1.06 for Perl T_STD_STRING typemap may read the SV length before stringifying the argument. The typemap uses $var = std::string( SvPV_nolen($arg), SvCUR($arg) ) However, evaluation order for C++ arguments is not specified, and some compilers may produce code that evalutes SvCUR($arg) first. When $arg is not a string (for example, an interger, number or a reference) then SvCUR will return an invalid value, and the program may abort or segfault.

NVD references (4)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.