CVE-2026-110753
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline.
With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line.
The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- 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
9.8
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline.
With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line.
The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
CVE-2026-110753- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-416, CWE-911
- Updated
- 2026-11-02
EUVDEUVD-2026-103193
9.8
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline.
With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line.
The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
EUVD-2026-103193- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-gvjh-vp76-v2mp
9.8
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns...
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline.
With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line.
The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
GHSA-gvjh-vp76-v2mp- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-416
- Updated
- 2026-11-02
NVD
9.8
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline.
With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line.
The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
CVE-2026-110753- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-416, CWE-911
- Updated
- 2026-11-02
OSV
9.8
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline.
With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line.
The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
CVE-2026-110753- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-416, CWE-911
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-110753
9.8
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline. With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line. The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
DEBIAN-CVE-2026-110753- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 4 moreShow less
OSVUBUNTU-CVE-2026-110753
9.8
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline. With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line. The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
UBUNTU-CVE-2026-110753- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVAZL-109748 No score
CVE-2026-110753 affecting package perl-Text-CSV_XS 1.60-1
Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline.
With bind_columns, the parser writes each field into the caller's own scalar without taking a reference to it. When skip_empty_rows skips an empty last line, the parser frees the current field scalar without checking whether it is bound, dropping one reference from the application's variable. The "eof" mode does the same on any empty line.
The variable is then freed while the application still references it, so later code uses freed memory and can crash the process.
- Record
AZL-109748- Updated
- 2026-11-05
OSVMGASA-2026-0563 No score
Updated perl-Text-CSV_XS package fixes security vulnerabilities
Text::CSV_XS versions before 1.65 for Perl allow memory exhaustion by allocating one entry per index of an RFC 7111 selector in fragment. (CVE-2026-110752) Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty line in getline. (CVE-2026-110753) Text::CSV_XS versions before 1.65 for Perl leak the parsed fields of a record that fails to parse in getline. (CVE-2026-110754) Text::CSV_XS versions before 1.65 for Perl allow quadratic CPU use by copying the unparsed remainder per record of CR-only input in getline. (CVE-2026-110755) Text::CSV_XS versions before 1.65 for Perl drop the end of a record and its line ending when a UTF-8 flagged field precedes invalid UTF-8 bytes in print. (CVE-2026-110756) Text::CSV_XS versions before 1.65 for Perl allow record splitting by writing strings used as numbers without quotes in combine. (CVE-2026-110757) Text::CSV_XS versions before 1.65 for Perl read before the start of an all-blank field under allow_whitespace in strip_trail_whitespace. (CVE-2026-110758) Text::CSV_XS versions before 1.65 for Perl return a 0xFF byte that is not in the input for an empty last field followed by a lone CR in parse. (CVE-2026-110759)
- Record
MGASA-2026-0563- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12218-1 No score
perl-Text-CSV_XS-1.650.0-1.1 on GA media
These are all security issues fixed in the perl-Text-CSV_XS-1.650.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12218-1- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-Text-CSV_XSAzure Linux:3 |
through 1.60-1 | None known |
libtext-csv-xs-perlDebian:12 |
All versions, plus listed versions 1.49-11.49-1+deb12u11.50-11.51-11.52-1 Show 11 moreShow less1.53-11.54-11.55-11.56-11.57-11.59-11.60-11.61-11.62-11.64-11.65-1 |
None known |
libtext-csv-xs-perlDebian:13 |
All versions, plus listed versions 1.60-11.60-1+deb13u11.61-11.62-11.64-11.65-1 |
None known |
libtext-csv-xs-perlDebian:14 |
before 1.65-1, plus listed versions 1.60-11.61-11.62-11.64-1 |
1.65-1 |
perl-Text-CSV_XSMageia:10 From an advisory covering 8 CVEs |
before 1.650.0-1.mga10 | 1.650.0-1.mga10 |
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 |
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: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 From an advisory covering 8 CVEs |
before 1.650.0-1.1 | 1.650.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| 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-110753 is a critical vulnerability (CVSS 9.8) in perl-Text-CSV_XS, published October 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.41%, the 35th percentile. Fixed in libtext-csv-xs-perl 1.65-1.
References
github.com/cpan-authors/Text-CSV_XS/commit/f082d5c8aab1b8d16b6181d4f3042a06947e260f.patch
metacpan.org/release/HMBRAND/Text-CSV_XS-1.65/changes
nvd.nist.gov/vuln/detail/CVE-2026-110753
github.com/advisories/GHSA-gvjh-vp76-v2mp
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/110xxx/CVE-2026-110753.json
Show 16 moreShow less
github.com/cpan-authors/Text-CSV_XS
security-tracker.debian.org/tracker/CVE-2026-110753
advisories.mageia.org/MGASA-2026-0563.html
bugs.mageia.org/show_bug.cgi?id=36532
openwall.com/lists/oss-security/2026/10/16/38
ubuntu.com/security/CVE-2026-110753
cve.org/CVERecord?id=CVE-2026-110753
lists.security.metacpan.org/cve-announce/msg/44408682
suse.com/security/cve/CVE-2026-110752
suse.com/security/cve/CVE-2026-110753
suse.com/security/cve/CVE-2026-110754
suse.com/security/cve/CVE-2026-110755
suse.com/security/cve/CVE-2026-110756
suse.com/security/cve/CVE-2026-110757
suse.com/security/cve/CVE-2026-110758
suse.com/security/cve/CVE-2026-110759