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

When the input to parse ends in a separator and a lone CR, the parser treats the end of the input as the next character and stores the end-of-file marker in the field as the byte 0xFF. With binary set, parse("a,\r") returns the fields "a" and "\xFF". On UTF-8 flagged input the last field is a UTF-8 flagged string holding that lone byte, which is malformed UTF-8. The same input with a non-empty last field is rejected as an error.

A CRLF file read line by line and chomped ends this way when its last column is empty, so the application receives a byte that is not in its input.
Published: 2026-10-16
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Data Integrity – unexpected 0xFF byte injection leading to malformed data
Action: Patch
AI Analysis

Impact

The Text-CSV_XS Perl library before version 1.65 returns a 0xFF byte for an empty last field that is followed by a lone carriage return during parsing. When the binary flag is set, the parser returns this byte as a separate field, and when UTF-8 flagged input is used, the returned string contains malformed UTF‑8. The same input with a non‑empty last field is rejected as an error. As a result, the application receives a byte that was never present in the input string, potentially corrupting data or causing downstream processing errors.

Affected Systems

Perl applications that use the CPAN library Text-CSV_XS prior to version 1.65 are affected. Versions 1.64 and earlier will return the 0xFF byte under the conditions described.

Risk and Exploitability

The vulnerability is local in scope and requires crafted input that ends in a separator followed by a lone carriage return. No remote code execution or privilege escalation is possible; the impact is limited to data integrity and malformed UTF‑8 handling. The CVSS score of 9.8 indicates a critical severity. The EPSS score is less than 1%, indicating a very low but nonzero probability of exploitation. The vulnerability is not listed in the CISA KEV catalog, indicating a low likelihood of widespread exploitation. The primary risk is that parsing errors or downstream logic may misbehave because of the unexpected byte.

Generated by OpenCVE AI on October 20, 2026 at 20:50 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.
  • Sanitize input before parsing by removing trailing carriage returns or ensuring the last field is not empty when a lone CR follows.
  • Validate the parsed output for the presence of any 0xFF byte or malformed UTF‑8 sequences and handle such cases gracefully.

Generated by OpenCVE AI on October 20, 2026 at 20:50 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': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L'}

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
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


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

Type Values Removed Values Added
Description 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. When the input to parse ends in a separator and a lone CR, the parser treats the end of the input as the next character and stores the end-of-file marker in the field as the byte 0xFF. With binary set, parse("a,\r") returns the fields "a" and "\xFF". On UTF-8 flagged input the last field is a UTF-8 flagged string holding that lone byte, which is malformed UTF-8. The same input with a non-empty last field is rejected as an error. A CRLF file read line by line and chomped ends this way when its last column is empty, so the application receives a byte that is not in its input.
Title 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
Weaknesses CWE-1286
References

Subscriptions

Hmbrand Text::csv Xs
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-20T18:36:33.803Z

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

Link: CVE-2026-110759

cve-icon Vulnrichment

Updated: 2026-10-20T18:36:00.394Z

cve-icon NVD

Status : Awaiting Analysis

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

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

Link: CVE-2026-110759

cve-icon Redhat

Severity : Moderate

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

Links: CVE-2026-110759 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-21T20:21:51Z

Weaknesses
  • CWE-1286

    Improper Validation of Syntactic Correctness of Input