---
id: CVE-2026-110756
title: >-
  Text::CSV_XS versions before 1.65 for Perl drop the end of a record and its
  line ending when a UTF-8 flagged field precedes invalid UTF-8 bytes in print
summary: >-
  Text::CSV_XS versions before 1.65 for Perl drop the end of a record and its
  line ending when a UTF-8 flagged field precedes invalid UTF-8 bytes in print.


  When a record contains a UTF-8 flagged field, print holds back trailing bytes
  that…
severity: none
cwe:
  - CWE-116
product: Text-CSV_XS
affected:
  - Text-CSV_XS < 1.65
published: '2026-10-16'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T22:07:37.437Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-110756'
references:
  - url: >-
      https://github.com/cpan-authors/Text-CSV_XS/commit/0610a8d81262ae6f1ac82a88d73c8a471f38af19.patch
  - url: 'https://metacpan.org/release/HMBRAND/Text-CSV_XS-1.65/changes'
tags:
  - cve.org
ingestedAt: '2026-10-16T22:54:45.850Z'
---

## Overview

Text::CSV_XS versions before 1.65 for Perl drop the end of a record and its line ending when a UTF-8 flagged field precedes invalid UTF-8 bytes in print.

When a record contains a UTF-8 flagged field, print holds back trailing bytes that are not valid UTF-8 at each buffer flush, so that a character split across two flushes can be completed. Nothing writes the held-back bytes after the record's final flush. A record whose last field ends in such a byte loses it, any closing quote and the line ending, while print still returns true. combine is not affected.

The next record is written onto the same line, or, when the last field was quoted, the missing closing quote makes a reader take every following record as part of that field.

## Affected

- `Text-CSV_XS < 1.65`

## Remediation

Upgrade to Text-CSV_XS 1.65 or later.
