CVE-2026-56391
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
W narzędziu GNU coreutils uniq występuje podatność na odczyt poza zakresem spowodowana nieprawidłowym przetwarzaniem wielobajtowych danych wejściowych przy użyciu opcji -w (--check-chars). Funkcja find_field() błędnie oblicza długość bajtową znaków, przetwarzając wielokrotnie stały wskaźnik zamiast przesuwać się w danych wejściowych, co prowadzi do zawyżonej wartości długości. Ta nieprawidłowa długość jest później używana w operacji memcmp, powodując odczyty poza przydzielonym buforem podczas przetwarzania spreparowanych wielobajtowych danych wejściowych. Prowadzi to do awarii i potencjalnego ujawnienia sąsiedniej pamięci sterty.
Ocena ryzyka
Atakujący może spowodować awarię narzędzia uniq i potencjalnie ujawnić fragmenty pamięci sterty, co może prowadzić do wycieku poufnych informacji.
Rekomendacja
Należy zaktualizować GNU coreutils do wersji zawierającej poprawkę (commit d64e35a8a4c0e4608321433e0d84d917e4e36371) lub zastosować łatkę bezpieczeństwa.
Inne podatności w GNU coreutils
Zobacz wszystkie- CVE-2014-9471Wysokie
Funkcja parse_datetime w GNU coreutils umożliwia zdalnym atakującym spowodowanie awarii (denial of service) lub potencjalne wykonanie dowolnego kodu poprzez spreparowany ciąg daty.
- CVE-2026-56392Średnie
W GNU coreutils unexpand występuje przepełnienie sterty spowodowane przepełnieniem liczby całkowitej podczas alokacji bufora przy przetwarzaniu dużych wartości argumentu -t. Może to prowadzić do zapisu poza przydzieloną pamięcią i potencjalnie do uzyskania prymitywu zapisu na stercie.
- CVE-2025-5278Średnie
W GNU Coreutils funkcja begfield() w narzędziu sort jest podatna na odczyt poniżej bufora sterty. Użycie spreparowanego polecenia z tradycyjnym formatem klucza może spowodować dostęp do pamięci poza przydzielonym buforem.
Oryginalny opis (angielski, źródło NVD)
GNU coreutils uniq is vulnerable to an out‑of‑bounds read due to incorrect handling of multibyte input when the -w (--check-chars) option is used. The find_field() function miscalculates the byte length of characters by repeatedly processing a fixed pointer instead of advancing through the input, resulting in an inflated length value. This incorrect length is later used in a memcmp operation, causing reads beyond the allocated buffer when processing crafted multibyte input. When running GNU coreutils uniq with attacker-provided arguments, this behavior leads to a crash and potential adjacent heap memory exposure. This issue has been fixed in the commit d64e35a8a4c0e4608321433e0d84d917e4e36371.

