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

Under allow_whitespace, strip_trail_whitespace removes trailing spaces and tabs from each unquoted field without stopping at the start of the field. For a field of only blanks it reads the byte before the field's heap buffer. If that byte is also a space or tab, it may be zeroed and the walk continue backwards, depending on what the allocator placed there.

Leading blanks are normally skipped before a field is stored, but an all-blank field still arrives after a leading escape_char that differs from quote_char, or as a quoted field in getline when its line ends in two CRs.
Published: 2026-10-16
Score: n/a
EPSS: n/a
KEV: No
Impact: Memory corruption
Action: Apply patch
AI Analysis

Impact

Text-CSV_XS before 1.65 contains a bug in the strip_trail_whitespace routine that can read bytes before the start of an all‑blank field when allow_whitespace is enabled. This off‑by‑one read can expose or overwrite adjacent memory, potentially causing data corruption or a crash. The vulnerability does not expose a directly documented code‑execution path, but memory corruption can lead to severe local compromise if an attacker controls the input.

Affected Systems

Perl modules Text‑CSV_XS versions 1.64 and earlier are affected. The bug arises when allow_whitespace is true and strip_trail_whitespace is used. Users of these legacy versions on any platform running Perl are at risk.

Risk and Exploitability

The EPSS score is not available and the vulnerability is not listed in CISA KEV, so public exploitation data is limited. However, memory‑corruption bugs are generally considered high risk when an attacker can supply crafted CSV input. The likely attack vector is local or remote code execution through parsing of a malicious CSV file, depending on privileges. Because a CVSS score is not provided, the severity must be judged based on the potential for memory corruption and the ease of exploitation inferred from the description.

Generated by OpenCVE AI on October 16, 2026 at 23:14 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.
  • If you cannot upgrade immediately, set allow_whitespace to false or disable strip_trail_whitespace for fields that may be all blanks.
  • Validate or sanitize CSV input before parsing to ensure no malformed or all‑blank fields are processed.

Generated by OpenCVE AI on October 16, 2026 at 23:14 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 read before the start of an all-blank field under allow_whitespace in strip_trail_whitespace. Under allow_whitespace, strip_trail_whitespace removes trailing spaces and tabs from each unquoted field without stopping at the start of the field. For a field of only blanks it reads the byte before the field's heap buffer. If that byte is also a space or tab, it may be zeroed and the walk continue backwards, depending on what the allocator placed there. Leading blanks are normally skipped before a field is stored, but an all-blank field still arrives after a leading escape_char that differs from quote_char, or as a quoted field in getline when its line ends in two CRs.
Title 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
Weaknesses CWE-127
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-16T22:08:10.917Z

Reserved: 2026-10-14T17:07:36.990Z

Link: CVE-2026-110758

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-110758

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-16T23:15:14Z

Weaknesses