Katalog CVE

CVE-2026-110758

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Text::CSV_XS w wersjach przed 1.65 dla Perla czyta przed początkiem pola składającego się wyłącznie z białych znaków w ramach allow_whitespace w strip_trail_whitespace. W trybie allow_whitespace, strip_trail_whitespace usuwa końcowe spacje i tabulatory z każdego niecytowanego pola bez zatrzymywania się na początku pola. Dla pola składającego się tylko z białych znaków odczytuje bajt przed buforem sterty pola. Jeśli ten bajt jest również spacją lub tabulatorem, może zostać wyzerowany, a przejście może kontynuować wstecz, w zależności od tego, co umieścił tam alokator. Wiodące białe znaki są normalnie pomijane przed zapisaniem pola, ale pole składające się wyłącznie z białych znaków nadal pojawia się po wiodącym escape_char różnym od quote_char lub jako pole cytowane w getline, gdy jego linia kończy się dwoma CR.

Ocena ryzyka

Może wystąpić odczyt poza granicami bufora, co potencjalnie prowadzi do uszkodzenia pamięci, awarii aplikacji lub wykonania dowolnego kodu. Podatność może być wykorzystana przez dostarczenie specjalnie spreparowanych danych CSV.

Rekomendacja

Zaktualizuj Text::CSV_XS do wersji 1.65 lub nowszej, aby naprawić błąd odczytu poza buforem. Do czasu aktualizacji unikaj używania opcji allow_whitespace z danymi wejściowymi zawierającymi pola składające się wyłącznie z białych znaków.

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

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