--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected]
Control: affects -1 + src:libtext-csv-xs-perl
User: [email protected]
Usertags: pu
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
In coordination with the security team, I've uploaded
libtext-csv-xs-perl/1.60-1+deb13u1 to trixie in order to fix
https://security-tracker.debian.org/tracker/CVE-2026-7111
aka #1135232
| 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 fix is 1 quilt patch, taken from the respective uptream commit
(also included in the 1.62 upstream release, aka tested in the wild),
which is also already in unstable.
Find attached the complete debdiff against the version in trixie.
Thanks in advance,
gregor
-----BEGIN PGP SIGNATURE-----
iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmn7ep1fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx
RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ
qgb4Sw//ckWUm+rojfX9peN3hUjtA5DFqwN4LCBgwAklj5gDkzwbgnQuFuV6SHlL
38kWtqQuxRLAQg6lkcngV6M3J1I0f/fnJgGuRtDF463NKc0xo+iQqEYJc6VYy6U1
dFYRRE/z/WYgFfxS1h9A4Gxc4isIXVtn5omZNCeEHXII4fQk8DmFan/eWwGc7cZh
nmBzBwQ4HTZD7kVJ4OHK9BRU12yj+bpJdtnm2gyP7PCiW03xUpkLDZVJvWZfSO+e
8DOVFlXeS3qX7uvSqdqQTMFJnOZ0by/kKdILDeQD8yHkB1+31CDvOcL+YWPjd184
CTLEhD+TrRK1HpOa954FUEYVlquLfct/YfFDA/PmDyZSz9QfCiMmkQgEnL02Bcpw
LBOvtvFDgl1MTC2pvt7rKMzx2xnGwSy6aYo9C+sEOS1JbT2lj0WlR0hkZE1kWCh1
g/wyBC8AU3QRUQhsEtvkGkr6lbvsYO+j6pCsIOEBr5nBjR+k+FdIGp84Vx01L/v1
Fk+a3gFXOFBsbtILCrFMyT+m41G8epbBr6D+aXoZFnp/jPxX0+RxA7touxsEi8pQ
Odr+8GCHS924RPa/syuUAvwi0w6q27EQltLQNppb59ID2Yztf/bOthskvGLehwqp
HiE8natvdAyTrHYFIAZWb9WD4x2BIbWKFRsx0by0jqNEDavsMhc=
=npYS
-----END PGP SIGNATURE-----
diff -Nru libtext-csv-xs-perl-1.60/debian/changelog
libtext-csv-xs-perl-1.60/debian/changelog
--- libtext-csv-xs-perl-1.60/debian/changelog 2025-02-02 02:20:05.000000000
+0100
+++ libtext-csv-xs-perl-1.60/debian/changelog 2026-05-06 17:02:23.000000000
+0200
@@ -1,3 +1,11 @@
+libtext-csv-xs-perl (1.60-1+deb13u1) trixie; urgency=medium
+
+ * Fix possible stack corruption: CVE-2026-7111.
+ Patch taken from upstream Git commit, as released in 1.62.
+ (Closes: #1135232)
+
+ -- gregor herrmann <[email protected]> Wed, 06 May 2026 17:02:23 +0200
+
libtext-csv-xs-perl (1.60-1) unstable; urgency=medium
* Import upstream version 1.60.
diff -Nru
libtext-csv-xs-perl-1.60/debian/patches/0001-Fix-possible-stack-corruption.patch
libtext-csv-xs-perl-1.60/debian/patches/0001-Fix-possible-stack-corruption.patch
---
libtext-csv-xs-perl-1.60/debian/patches/0001-Fix-possible-stack-corruption.patch
1970-01-01 01:00:00.000000000 +0100
+++
libtext-csv-xs-perl-1.60/debian/patches/0001-Fix-possible-stack-corruption.patch
2026-05-06 17:02:23.000000000 +0200
@@ -0,0 +1,114 @@
+From c17f31a5f2bf36674748eb4b6e25672f0571a224 Mon Sep 17 00:00:00 2001
+From: "H.Merijn Brand - Tux" <[email protected]>
+Date: Sat, 25 Apr 2026 16:18:57 +0200
+Subject: [PATCH] Fix possible stack corruption (thanks leont) (issue 65)
+
+SPAGAIN required if callbacks can extend the stack
+
+
+Bug: https://github.com/cpan-authors/Text-CSV_XS/issues/65
+Bug-Debian: https://bugs.debian.org/1135232
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2026-7111
+
+
+---
+ CSV_XS.xs | 36 ++++++++++++++++++------------------
+ ChangeLog | 1 +
+ cpanfile | 2 +-
+ sandbox/issue-65.pl | 41 ++++++++++++++++++++++++++++++++++++++---
+ 4 files changed, 58 insertions(+), 22 deletions(-)
+
+diff --git a/CSV_XS.xs b/CSV_XS.xs
+index f89859e..c348f83 100644
+--- a/CSV_XS.xs
++++ b/CSV_XS.xs
+@@ -122,6 +122,12 @@ static unsigned char ec, ebcdic2ascii[256] = {
+ croak ("self is not a hash ref"); \
+ hv = (HV *)SvRV (self)
+
++#define undef &PL_sv_undef
++#define PUT_RETURN(x) \
++ SPAGAIN; \
++ ST (0) = x; \
++ XSRETURN (1)
++
+ /* Keep in sync with .pm! */
+ #define CACHE_ID_quote_char 0
+ #define CACHE_ID_escape_char 1
+@@ -2603,7 +2609,7 @@ BOOT:
+ Perl_load_module (aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvs ("IO::Handle"),
NULL, NULL, NULL);
+
+ void
+-SetDiag (SV *self, int xse, ...)
++SetDiag (SV *self, int xse, SV *line = undef)
+
+ PPCODE:
+ HV *hv;
+@@ -2619,8 +2625,8 @@ SetDiag (SV *self, int xse, ...)
+ ST (0) = sv_2mortal (SvDiag (xse));
+ }
+
+- if (xse && items > 2 && SvPOK (ST (2))) {
+- sv_setpvn (ST (0), SvPVX (ST (2)), SvCUR (ST (2)));
++ if (xse && SvPOK (line)) {
++ sv_setpvn (ST (0), SvPVX (line), SvCUR (line));
+ SvIOK_on (ST (0));
+ }
+
+@@ -2670,8 +2676,8 @@ Parse (SV *self, SV *src, SV *fields, SV *fflags)
+ av = (AV *)SvRV (fields);
+ avf = (AV *)SvRV (fflags);
+
+- ST (0) = xsParse (self, hv, av, avf, src, 0) ? &PL_sv_yes : &PL_sv_no;
+- XSRETURN (1);
++ int x = xsParse (self, hv, av, avf, src, 0);
++ PUT_RETURN (x ? &PL_sv_yes : &PL_sv_no);
+ /* XS Parse */
+
+ void
+@@ -2691,8 +2697,8 @@ print (SV *self, SV *io, SV *fields)
+ av = (AV *)SvRV (fields);
+ }
+
+- ST (0) = xsCombine (self, hv, av, io, 1) ? &PL_sv_yes : &PL_sv_no;
+- XSRETURN (1);
++ int x = xsCombine (self, hv, av, io, 1);
++ PUT_RETURN (x ? &PL_sv_yes : &PL_sv_no);
+ /* XS print */
+
+ void
+@@ -2706,26 +2712,20 @@ getline (SV *self, SV *io)
+ CSV_XS_SELF;
+ av = newAV ();
+ avf = newAV ();
+- ST (0) = xsParse (self, hv, av, avf, io, 1)
+- ? sv_2mortal (newRV_noinc ((SV *)av))
+- : &PL_sv_undef;
+- XSRETURN (1);
++ int x = xsParse (self, hv, av, avf, io, 1);
++ PUT_RETURN (x ? sv_2mortal (newRV_noinc ((SV *)av)) : undef);
+ /* XS getline */
+
+ void
+-getline_all (SV *self, SV *io, ...)
++getline_all (SV *self, SV *io, SV *offset = undef, SV *length = undef)
+
+ PPCODE:
+ HV *hv;
+- SV *offset, *length;
+
+ CSV_XS_SELF;
+
+- offset = items > 2 ? ST (2) : &PL_sv_undef;
+- length = items > 3 ? ST (3) : &PL_sv_undef;
+-
+- ST (0) = xsParse_all (self, hv, io, offset, length);
+- XSRETURN (1);
++ SV *x = xsParse_all (self, hv, io, offset, length);
++ PUT_RETURN (x);
+ /* XS getline_all */
+
+ void
+--
+2.53.0
+
diff -Nru libtext-csv-xs-perl-1.60/debian/patches/series
libtext-csv-xs-perl-1.60/debian/patches/series
--- libtext-csv-xs-perl-1.60/debian/patches/series 1970-01-01
01:00:00.000000000 +0100
+++ libtext-csv-xs-perl-1.60/debian/patches/series 2026-05-06
17:02:23.000000000 +0200
@@ -0,0 +1 @@
+0001-Fix-possible-stack-corruption.patch
--- End Message ---