Skip to main content

Perl CVE-2026-57432

HIGH
Integer Overflow or Wraparound (CWE-190)
2026-07-13 CPANSec
8.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Supply attacker-controlled pack/unpack template
  2. Delivery
    Embed oversized item repeat count
  3. Exploit
    len*size overflows signed SSize_t total negative
  4. Execution
    @/X/x signed length guard passes on negative value
  5. Persist
    Buffer pointer advances out of bounds
  6. Impact
    Adjacent heap memory read and returned to caller

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the application to construct a pack or unpack template from attacker-influenced input - specifically an oversized item repeat count - combined with use of the @, X, or x position codes that perform signed-length pointer moves; running Perl at or below version 5.43.10. What limits it: templates in the vast majority of Perl programs are static/hardcoded, so an attacker who controls only the packed DATA (not the template structure) cannot trigger the wrap; there is no authentication or user-interaction requirement in the code path itself (PR:N/UI:N), but the non-default 'template derived from untrusted input' pattern is the decisive prerequisite and is uncommon in practice.

Impact

Signals are mixed and warrant scrutiny. The published CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, 8.4 High) rates confidentiality, integrity AND availability as High, but the description characterizes the primitive as a read-only out-of-bounds disclosure - integrity impact in particular appears overstated, so treat I:H skeptically and verify with the vendor. No EPSS score, KEV entry, or SSVC decision data was provided; there is no CISA KEV listing, so this is not confirmed actively exploited, and no proof-of-concept is referenced - no public exploit identified at time of analysis. The most important real-world limiter is not in the raw score: exploitation requires the application to derive the pack/unpack template (specifically a repeat count) from untrusted input, which is an uncommon coding pattern - most Perl programs use static templates. Net assessment: a genuine memory-disclosure bug worth patching promptly on multi-tenant or input-driven Perl systems, but the practical attack surface is far narrower than the 8.4 suggests, making this a moderate rather than emergency priority absent evidence of a vulnerable template pattern.

Exploit ScenarioDerived

A Perl web service builds a pack/unpack template from client-supplied parameters (for example, a binary-protocol parser that lets the caller specify field repeat counts). An attacker submits a template containing an enormous repeat count together with a @, X, or x position code, overflowing the size total; the interpreter then reads heap memory past the buffer and returns those bytes in the response, leaking secrets such as keys or other users' data. No proof-of-concept is referenced, and the attack requires the application to feed untrusted data into the template rather than the data stream alone.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 14, 2026

Out-of-bounds heap read in the Perl interpreter (through version 5.43.10) lets an attacker who controls a pack or unpack template disclose adjacent heap memory back to the calling program. An unchecked integer overflow in S_measure_struct wraps the running size total negative, defeating the signed-length guards on the @, X, and x position codes and walking the buffer pointer outside its bounds. No public exploit is identified at time of analysis; the flaw was reported by CPANSec with vendor patches already committed upstream.

RemediationAI

Upgrade to a Perl release that incorporates the upstream fixes; the corrections were committed by the Perl maintainers (commits 5f7eb6bbbe0510964e3fb1d6bb691e5445913e55 and 40754edc72dd3e513d758153c0e2f0215897740e) which add an overflow check in S_measure_struct that croaks with 'Pack template structure size is too large' when len*size or total+len*size would exceed SSize_t_MAX. Because the references point to upstream commits/patches rather than a tagged release, an upstream fix is available but a specific released patched version is not independently confirmed here - track your OS/distribution's Perl package update or rebuild from a snapshot containing these commits. As a compensating control until patched, audit application code so that pack/unpack templates - and especially item repeat counts - are never constructed from untrusted input; where dynamic templates are unavoidable, clamp or validate repeat counts to sane maxima before use, accepting the trade-off of stricter input rejection. Patch details: https://github.com/Perl/perl5/commit/5f7eb6bbbe0510964e3fb1d6bb691e5445913e55.patch and https://github.com/Perl/perl5/commit/40754edc72dd3e513d758153c0e2f0215897740e.patch.

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 affected component is Perl's core pack/unpack machinery in pp_pack.c, which serializes and deserializes binary data according to a template string. S_measure_struct precomputes the byte size of a template by summing each item's size multiplied by its repeat count into a signed SSize_t 'total' with no overflow check - the CWE-190 (Integer Overflow or Wraparound) root cause. A sufficiently large repeat count makes len*size (or total+len*size) exceed SSize_t_MAX and wrap negative. The position codes @ (absolute seek), X (backward move) and x (forward/null move) then validate their target offset with a signed comparison that spuriously succeeds against the negative length, so the interpreter advances or rewinds the buffer pointer past the allocation and reads uninitialized/adjacent heap memory, which is returned to the Perl caller. Affected CPE is cpe:2.3:a:shay:perl:*:*:*:*:*:*:*:* (note the atypical 'shay' vendor token; the real product is Perl 5).

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

NVD PRIMARY 8.4 HIGH
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 6.5 MEDIUM

Requires the app to build a pack/unpack template from untrusted input (uncommon, so AC:H); primitive is a read-only heap disclosure so C:H, I:N, and only possible crash gives A:L.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:L
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Red Hat 5.0 MEDIUM

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

3
CVSS changed
Jul 14, 2026 - 14:22 NVD
8.4 (HIGH)
CVE Published
Jul 13, 2026 - 15:38 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 13, 2026 - 15:38 cve.org
HIGH 8.4

DescriptionNVD

Perl versions through 5.43.10 have an integer overflow in S_measure_struct leading to an out-of-bounds heap read in pack and unpack.

S_measure_struct adds each item's size times its repeat count to a running total with no overflow check, so a large repeat count in a pack or unpack template wraps the signed SSize_t total negative. The @, X, and x position codes then guard their moves with a signed length comparison that passes when the length is negative, advancing the buffer pointer out of bounds.

A template derived from untrusted input can read heap memory past the buffer and return it to the caller.

Executive ViewAI

Why It Matters

A heap memory disclosure vulnerability in Perl (versions through 5.43.10) allows attackers controlling pack/unpack templates to read adjacent heap memory, potentially exposing sensitive application data. Organizations running Perl-based services face information disclosure risk affecting confidentiality of in-memory data. Patched versions are available and deployment should be prioritized.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Ubiquitous
Perl interpreter ships by default on nearly all Unix/Linux systems
Social Media
2
Sightings
Data Quality
7 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment MSRC Vendor CIRCL GitHub VulDB

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 Yes
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
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

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

Affected Products (CPE)NVD

cpe:2.3:a:shay:perl:*:*:*:*:*:*:*:*

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-2026-13221 CRITICAL POC
9.1 Jul 13

Silently incorrect regular-expression matching in the Perl interpreter (all versions through 5.43.9) lets an oversized a

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

Vendor StatusVendor

SUSE

Severity: Important
Product Status
Container suse/sles/16.0/toolbox:latest Affected
openSUSE Leap 16.0 Fixed
SUSE Linux Enterprise Server 16.0 Affected
SUSE Linux Enterprise Server for SAP applications 16.0 Affected
SUSE Linux Micro 6.2 Affected

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