FICHE CVE

CVE-2026-110759

Publiée le 2026-10-16 · Dernière modification le 2026-10-20

🇫🇷 EN BREF

Les versions de Text::CSV_XS antérieures à 1.65 constituent un module Perl utilisé pour analyser des fichiers de valeurs séparées par des virgules (CSV). La faille survient lorsqu'un fichier se termine par un séparateur suivi d'un seul retour chariot (CR) et d'un champ final vide. Dans ce scénario spécifique, l'analyseur insère incorrectement un octet 0xFF dans les données résultantes, alors que celui-ci n'était pas présent dans l'entrée d'origine.

Un attaquant peut exploiter cela en fournissant un fichier CSV spécialement conçu à un serveur, ce qui pourrait mener à une compromission complète du système, au vol de données ou à des plantages de services. Comme la faille est déclenchée lors de l'analyse syntaxique de base, elle ne nécessite aucune authentification ni interaction utilisateur, autre que le traitement du fichier par l'application. L'attaque s'exécute facilement via un réseau, posant un risque élevé pour la confidentialité, l'intégrité et la disponibilité du système.

CVSS 3.19.8 CRITIQUE
Type de faiblesse
Publiée2026-10-16
Dernière modification2026-10-20

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisAucun
Interaction utilisateurAucune
PortéeInchangée
Impact sur la confidentialitéÉlevé
Impact sur l'intégritéÉlevé
Impact sur la disponibilitéÉlevé

RÉFÉRENCES

Description officielle du NVD (en anglais)

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.