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 Stig Palmquist 16 Oct 2026 22:09 UTC

========================================================================
CVE-2026-110753                                      CPAN Security Group
========================================================================

        CVE ID:  CVE-2026-110753

  Distribution:  Text-CSV_XS
      Versions:  from 1.46 before 1.65
      MetaCPAN:  https://metacpan.org/dist/Text-CSV_XS
      VCS Repo:  https://github.com/cpan-authors/Text-CSV_XS

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

Description
-----------
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.

Problem types
-------------
- CWE-416 Use After Free
- CWE-911 Improper Update of Reference Count

Solutions
---------
Upgrade to Text-CSV_XS 1.65 or later.

References
----------
https://github.com/cpan-authors/Text-CSV_XS/commit/f082d5c8aab1b8d16b6181d4f3042a06947e260f.patch
https://metacpan.org/release/HMBRAND/Text-CSV_XS-1.65/changes

Timeline
--------
- 2026-10-14: Fix committed to upstream repository.
- 2026-10-15: Version 1.65 released with fix.