CVE-2026-7111
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
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.4
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
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.
- Record
CVE-2026-7111- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-825, CWE-416
- Updated
- 2026-11-02
EUVDEUVD-2026-26237
8.4
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.
- Record
EUVD-2026-26237- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-29pg-8q2m-r6xm
8.4
Text::CSV_XS versions before 1.62 for Perl have a use-after-free when registered callbacks extend...
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.
- Record
GHSA-29pg-8q2m-r6xm- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-416
- Updated
- 2026-11-02
NVD
8.4
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.
- Record
CVE-2026-7111- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-416, CWE-825
- Updated
- 2026-11-02
OSV
8.4
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
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.
- Record
CVE-2026-7111- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-416, CWE-825
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-7111
8.4
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.
- Record
DEBIAN-CVE-2026-7111- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 7 moreShow less
OSVUBUNTU-CVE-2026-7111
8.4
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.
- Record
UBUNTU-CVE-2026-7111- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVAZL-85922 No score
CVE-2026-7111 affecting package perl-Text-CSV_XS 1.60-1
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.
- Record
AZL-85922- Updated
- 2026-11-05
OSVMGASA-2026-0370 No score
Updated perl-Text-CSV_XS packages fix a security vulnerability
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.
- Record
MGASA-2026-0370- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10774-1 No score
perl-Text-CSV_XS-1.620.0-1.1 on GA media
These are all security issues fixed in the perl-Text-CSV_XS-1.620.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10774-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20708-1 No score
Security update for perl-Text-CSV_XS
This update for perl-Text-CSV_XS fixes the following issue:
- CVE-2026-7111: use-after-free when registered callbacks extend the Perl argument stack may enable type confusion or memory corruption (bsc#1263690).
- Record
openSUSE-SU-2026:20708-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:1936-1 No score
Security update for perl-Text-CSV_XS
This update for perl-Text-CSV_XS fixes the following issue
- CVE-2026-7111: use-after-free when registered callbacks extend the Perl argument stack may enable type confusion or memory corruption (bsc#1263690).
- Record
SUSE-SU-2026:1936-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21596-1 No score
Security update for perl-Text-CSV_XS
This update for perl-Text-CSV_XS fixes the following issue:
- CVE-2026-7111: use-after-free when registered callbacks extend the Perl argument stack may enable type confusion or memory corruption (bsc#1263690).
- Record
SUSE-SU-2026:21596-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-Text-CSV_XSAzure Linux:3 |
through 1.60-1 | None known |
libtext-csv-xs-perlDebian:12 |
before 1.49-1+deb12u1, plus listed versions 1.49-1 |
1.49-1+deb12u1 |
libtext-csv-xs-perlDebian:13 |
before 1.60-1+deb13u1, plus listed versions 1.60-1 |
1.60-1+deb13u1 |
libtext-csv-xs-perlDebian:14 |
before 1.62-1, plus listed versions 1.60-11.61-1 |
1.62-1 |
perl-Text-CSV_XSMageia:10 |
before 1.640.0-1.mga10 | 1.640.0-1.mga10 |
perl-Text-CSV_XSMageia:9 |
before 1.640.0-1.mga9 | 1.640.0-1.mga9 |
libtext-csv-xs-perlUbuntu:16.04:LTS |
All versions, plus listed versions 1.19-11.20-11.20-1build11.21-1 |
None known |
libtext-csv-xs-perlUbuntu:18.04:LTS |
All versions, plus listed versions 1.26-1build11.34-1 |
None known |
libtext-csv-xs-perlUbuntu:20.04:LTS |
All versions, plus listed versions 1.39-11.39-1build11.40-11.41-1 |
None known |
libtext-csv-xs-perlUbuntu:22.04:LTS |
All versions, plus listed versions 1.45-11.46-11.47-11.47-1build1 |
None known |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
libtext-csv-xs-perlUbuntu:24.04:LTS |
All versions, plus listed versions 1.51-11.52-11.53-11.53-1build11.53-1build21.53-1build3 |
None known |
libtext-csv-xs-perlUbuntu:25.10 |
All versions, plus listed versions 1.60-1 |
None known |
libtext-csv-xs-perlUbuntu:26.10 |
All versions, plus listed versions 1.61-11.62-11.64-11.64-1build1 |
None known |
libtext-csv-xs-perlUbuntu:26.04:LTS |
All versions, plus listed versions 1.60-11.61-1 |
None known |
perl-Text-CSV_XSopenSUSE:Tumbleweed |
before 1.620.0-1.1 | 1.620.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-7111 is a high vulnerability (CVSS 8.4) in Hmbrand Text::csv Xs, published April 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.16%, the 4th percentile. Fixed in libtext-csv-xs-perl 1.49-1+deb12u1.
References
github.com/cpan-authors/Text-CSV_XS/commit/c17f31a5f2bf36674748eb4b6e25672f0571a224.patch
metacpan.org/release/HMBRAND/Text-CSV_XS-1.62/changes
openwall.com/lists/oss-security/2026/04/29/17
lists.debian.org/debian-lts-announce/2026/06/msg00037.html
nvd.nist.gov/vuln/detail/CVE-2026-7111
github.com/advisories/GHSA-29pg-8q2m-r6xm
Show 15 moreShow less
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/7xxx/CVE-2026-7111.json
github.com/cpan-authors/Text-CSV_XS
security-tracker.debian.org/tracker/CVE-2026-7111
advisories.mageia.org/MGASA-2026-0370.html
bugs.mageia.org/show_bug.cgi?id=35547
lists.opensuse.org/archives/list/[email protected]/message/QELUJSCSNBIE4N5UNKH4YGI5LFCHEY65
lists.security.metacpan.org/cve-announce/msg/39453344
github.com/cpan-authors/Text-CSV_XS/issues/65
suse.com/support/update/announcement/2026/suse-su-20261936-1
bugzilla.suse.com/1263690
suse.com/security/cve/CVE-2026-7111
suse.com/support/update/announcement/2026/suse-su-202621596-1
ubuntu.com/security/CVE-2026-7111
cve.org/CVERecord?id=CVE-2026-7111