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

With eol unset, the default, getline reads with Perl's default line separator, so input with CR-only line endings arrives as one chunk. After each record the parser copies the whole unparsed remainder into a new buffer, which the next call parses and copies again, so the work grows with the square of the input size.

A reader with default options that is sent CSV with classic Mac line endings spends seconds of CPU time on a megabyte of input.
Published: 2026-10-16
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

Text::CSV_XS before version 1.65 allows the parser to consume CPU resources in a quadratic fashion by copying the entire unparsed remainder of CR-only input for each record processed by getline. With classic Mac line endings, the input is read as a single chunk; each pass over a record copies the already‑processed remainder into a new buffer, leading to exponential growth in copy operations and CPU usage that scales with the square of the input size.

Affected Systems

The vulnerability affects Text-CSV_XS modules for Perl releases prior to version 1.65. Systems that use these older modules to parse CSV data are impacted, particularly when feeding data with CR-only line endings.

Risk and Exploitability

No CVSS score or EPSS value is publicly available for this issue, and it is not listed in the CISA KEV catalog. However, the quadratic CPU consumption can lead to denial-of-service conditions if an attacker supplies a CSV file with classic Mac line endings to a vulnerable parser. This requires the ability to deliver or influence CSV input processed by the affected code, which can arise in web applications, data import scripts, or any code path that consumes CSV files from untrusted sources.

Generated by OpenCVE AI on October 16, 2026 at 23:16 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 newer
  • Audit code paths that parse CSV input to avoid or sanitize classic Mac line endings, ensuring line separators are correctly configured
  • Implement monitoring for abnormal CPU usage during CSV parsing to detect potential denial‑of‑service attempts early

Generated by OpenCVE AI on October 16, 2026 at 23:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Description 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. With eol unset, the default, getline reads with Perl's default line separator, so input with CR-only line endings arrives as one chunk. After each record the parser copies the whole unparsed remainder into a new buffer, which the next call parses and copies again, so the work grows with the square of the input size. A reader with default options that is sent CSV with classic Mac line endings spends seconds of CPU time on a megabyte of input.
Title 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
Weaknesses CWE-407
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-16T22:07:10.643Z

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

Link: CVE-2026-110755

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-10-16T23:17:00.740

Link: CVE-2026-110755

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-16T23:30:13Z

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity