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.
Published: 2026-10-16
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service (crash)
Action: Immediate Patch
AI Analysis

Impact

The likely attack vector is an attacker crafting a CSV file that includes empty lines processed with bind_columns and skip_empty_rows, thereby invoking the use‑after‑free in Text::CSV_XS. The vulnerability frees a scalar variable bound to the caller. When skip_empty_rows skips an empty line, the parser deletes the bound scalar without verifying that it remains in use. The application later accesses this freed memory, causing a process crash.

Affected Systems

Perl modules using Text::CSV_XS version 1.46 through 1.64, inclusive, on CPAN. These versions are incompatible with any Perl program that employs bind_columns together with skip_empty_rows or enables eof mode on empty lines.

Risk and Exploitability

The CVSS score of 9.8 indicates critical severity. Because the flaw is triggered by specific input handling and requires bind_columns, the risk is primarily local and results in a denial‑of‑service via crash. The likely attack vector involves an attacker supplying crafted CSV input that contains empty lines processed with bind_columns, causing the use‑after‑free. The EPSS score of < 1% indicates a low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog, suggesting it has not yet become a widely exploited threat. Nonetheless, any environment that processes CSV input with this module should treat it as a high‑risk issue until patched.

Generated by OpenCVE AI on October 20, 2026 at 20:53 UTC.

Remediation

Vendor Solution

Upgrade to Text-CSV_XS 1.65 or later.


OpenCVE Recommended Actions

  • Upgrade Text::CSV_XS to version 1.65 or later. This version removes the use‑after‑free behavior.
  • If immediate upgrade is not possible, avoid using bind_columns together with skip_empty_rows or eof mode on inputs that may contain empty lines; instead preprocess input files to remove or replace trailing blank lines.
  • Ensure that any application‑level input handling validates or sanitizes CSV sources to avoid unnecessarily triggering the faulty parser logic.

Generated by OpenCVE AI on October 20, 2026 at 20:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 21 Oct 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Hmbrand
Hmbrand text::csv Xs
Vendors & Products Hmbrand
Hmbrand text::csv Xs

Tue, 20 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Sat, 17 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 16 Oct 2026 22:30:00 +0000

Type Values Removed Values Added
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.
Title 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
Weaknesses CWE-416
CWE-911
References

Subscriptions

Hmbrand Text::csv Xs
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-20T18:14:23.696Z

Reserved: 2026-10-14T17:06:13.039Z

Link: CVE-2026-110753

cve-icon Vulnrichment

Updated: 2026-10-20T18:13:53.806Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-16T23:17:00.530

Modified: 2026-10-20T19:17:29.540

Link: CVE-2026-110753

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-16T22:06:23Z

Links: CVE-2026-110753 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-21T20:22:08Z

Weaknesses