Katalog CVE

CVE-2026-110759

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Text::CSV_XS w wersjach przed 1.65 dla Perla zwraca bajt 0xFF, którego nie ma na wejściu, dla pustego ostatniego pola, po którym następuje samotny CR w parse. Gdy wejście do parse kończy się separatorem i samotnym CR, parser traktuje koniec wejścia jako następny znak i zapisuje znacznik końca pliku w polu jako bajt 0xFF. Przy ustawionej opcji binary, parse("a,\r") zwraca pola "a" i "\xFF". Na wejściu oznaczonym jako UTF-8 ostatnie pole jest łańcuchem oznaczonym jako UTF-8 zawierającym ten samotny bajt, co jest nieprawidłowym UTF-8. To samo wejście z niepustym ostatnim polem jest odrzucane jako błąd. Plik CRLF czytany linia po linii i poddany chomp kończy się w ten sposób, gdy jego ostatnia kolumna jest pusta, więc aplikacja otrzymuje bajt, którego nie ma na jej wejściu.

Ocena ryzyka

Aplikacje przetwarzające pliki CSV mogą otrzymać nieoczekiwany bajt 0xFF w danych, co może prowadzić do błędów przetwarzania, uszkodzenia danych lub problemów z kodowaniem UTF-8. Może to skutkować nieprawidłowym działaniem aplikacji lub błędami w logice biznesowej.

Rekomendacja

Zaktualizuj Text::CSV_XS do wersji 1.65 lub nowszej, aby naprawić błąd zwracania bajtu 0xFF. Do czasu aktualizacji unikaj przetwarzania plików CSV z pustym ostatnim polem i samotnym CR na końcu.

Inne podatności w Text::CSV_XS

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS