Skip to main content

Text::CSV_XS EUVDEUVD-2026-26237

| CVE-2026-7111 HIGH
Expired Pointer Dereference (CWE-825)
2026-04-29 CPANSec
8.4
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted CSV to callback-enabled parser
  2. Delivery
    Callback extends Perl argument stack
  3. Exploit
    Stack reallocation frees cached buffer
  4. Execution
    Return written through stale pointer
  5. Persist
    Wrong object/freed memory returned
  6. Impact
    Crash or type confusion (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Expired pointer prevention
Exploitation Conditions

Requires the calling application to have registered at least one callback (after_parse, before_print, after_in, or on_error) on the Text::CSV_XS object AND that callback to extend the Perl argument stack enough to trigger a reallocation during Parse, print, getline, or getline_all; objects with no registered callbacks are explicitly not affected. Attack vector is local (AV:L) with no authentication (PR:N) and no user interaction, but exploitation is limited by this non-default callback configuration and by the need for attacker-controlled input to flow through the callback-enabled parsing path - making it dependent on application code structure rather than a default deployment.

Impact

Signals conflict and lean toward low real-world urgency despite the 8.4 base score. CVSS is AV:L/AC:L/PR:N/UI:N with C:H/I:H/A:H, but the description constrains exploitation to code paths where the application itself has registered callbacks that extend the argument stack - a non-default, developer-controlled condition not captured by AC:L. EPSS is 0.01% (3rd percentile), SSVC reports Exploitation:none and Automatable:no (only Technical Impact:total), and there is no KEV listing and no public exploit identified. The high C/I ratings appear optimistic: demonstrated impact is returning the wrong object and crashes (denial of service / logic errors), with type confusion as a theoretical escalation rather than proven code execution. Treat this as a correctness/stability defect for Perl applications using CSV callbacks rather than a broadly weaponizable RCE; note AV:L means it is not remotely reachable without attacker-influenced input flowing through a callback-enabled parser.

Exploit ScenarioDerived

An attacker supplies crafted CSV input to a Perl application that parses it with Text::CSV_XS while a callback such as after_parse is registered; the callback grows the argument stack enough to force reallocation, so getline_all returns the parser object instead of the expected row data. The resulting type confusion or read of freed memory causes the application to crash or mishandle data (denial of service / logic corruption). No standalone weaponized exploit is public, but the fix commit includes a sandbox reproducer (sandbox/issue-65.pl) demonstrating the fault, and the local attack vector requires attacker-influenced input to reach the callback-enabled parse path.

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

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

Alert me

AnalysisAIv1 – Jul 24, 2026

Memory corruption in the Text::CSV_XS Perl module (all versions before 1.62) occurs when application-registered callbacks such as after_parse, before_print, or on_error extend the Perl argument stack during Parse, print, getline, or getline_all, causing a use-after-free through a stale stack pointer. Affected code receives the Text::CSV_XS object instead of parsed rows, producing logic errors, crashes, or potential type confusion. EPSS is 0.01% and there is no public exploit identified at time of analysis, though the fix commit ships a sandbox reproducer.

RemediationAI

Vendor-released patch: Text::CSV_XS 1.62 - upgrade to 1.62 or later from CPAN, which refreshes the stack pointer (SPAGAIN) before writing return values (fix commit https://github.com/cpan-authors/Text-CSV_XS/commit/c17f31a5f2bf36674748eb4b6e25672f0571a224.patch; changelog https://metacpan.org/release/HMBRAND/Text-CSV_XS-1.62/changes). Debian LTS users should apply the distribution update at https://lists.debian.org/debian-lts-announce/2026/06/msg00037.html. If immediate upgrade is not possible, a targeted workaround is to avoid or remove registered callbacks (after_parse, before_print, after_in, on_error) on Text::CSV_XS objects, since objects without callbacks are unaffected - the trade-off is loss of any per-row hook logic your application relies on. Where callbacks are essential, ensure they do not push extra values onto the Perl stack (return a simple scalar such as 1 or undef without growing the argument stack), understanding this is a fragile stopgap and full remediation still requires the 1.62 upgrade.

Affected VersionsENISA

Text::CSV_XS 0 <1.62

Affected Packages

euvd text_csv_xs fix: 1.62

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

Text::CSV_XS is a high-performance XS (C-backed) CPAN module and the de facto fast CSV parser for Perl (CPE cpe:2.3:a:hmbrand:text::csv_xs). The root cause is CWE-825 (expired/stale pointer dereference): the XS layer caches the Perl argument stack pointer (via ST(0)) across a callback invocation, then writes the return value through that cached pointer with XSRETURN(1). When a callback pushes enough values to force Perl to reallocate (realloc) the argument stack, the cached pointer references freed memory. The 1.62 fix introduces a PUT_RETURN macro that issues SPAGAIN to refresh the stack pointer before writing ST(0), and also hardens SetDiag and getline_all argument handling by using named prototyped SV* parameters instead of raw ST(n) indexing.

Know when Text 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 8.4 HIGH
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 6.2 MEDIUM

AC:H because it requires app-registered callbacks plus a precisely-timed stack reallocation; A:H for crashes, with only limited C:L/I:L from type confusion since code execution is unproven.

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

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

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
Apr 29, 2026 - 19:22 NVD
8.4 (None) 8.4 (HIGH)
Patch released
Apr 29, 2026 - 14:45 nvd
Patch available
CVE Published
Apr 29, 2026 - 14:22 nvd
HIGH 8.4

DescriptionCVE.org

Text::CSV_XS versions before 1.62 for Perl have a use-after-free when registered callbacks extend the Perl argument stack, which may enable type confusion or memory corruption.

The Parse, print, getline, and getline_all methods invoke registered callbacks (for example after_parse, before_print, or on_error) and cache the Perl argument stack pointer across the call. If a callback extends the argument stack enough to trigger a reallocation, the return value is written through the stale pointer into the freed buffer, and the caller reads the original $self argument as the return value instead.

Calling code that expects parsed data from getline_all receives the Text::CSV_XS object in its place, leading to logic errors or crashes. Text::CSV_XS objects used without any registered callbacks are not affected.

Executive ViewAI

Why It Matters

Text::CSV_XS Perl module versions before 1.62 contain a memory corruption vulnerability affecting CSV data processing in enterprise applications. Applications using this module with custom callbacks may experience crashes, data loss, or logic errors during CSV file parsing. Organizations operating Perl-based CSV processing systems should prioritize updating to version 1.62 to restore service stability.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 97% exploitable
Prevalence
Medium
de facto fast CSV parser for Perl, but only in Perl deployments
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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.0%
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.

Vendor StatusVendor

SUSE

Severity: High
Product Status
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS Affected
SUSE Linux Enterprise Module for Development Tools 15 SP7 Affected

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