CVE-2026-5928
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 27 - wyżej niż 27% wszystkich znanych CVE
Streszczenie
W bibliotece GNU C Library w wersji 2.43 i wcześniejszych, funkcja ungetwc może odczytywać dane przed przydzielonym buforem, gdy strumień FILE zawiera znaki wielobajtowe w zestawie znaków, w którym nakładają się reprezentacje jednobajtowe i wielobajtowe. Błąd w implementacji pushbacku (_IO_wdefault_pbackfail) powoduje, że ungetwc() operuje na zwykłym buforze znaków zamiast na wskaźniku odczytu strumienia szerokiego, co może prowadzić do ujawnienia sąsiednich danych w stercie lub awarii programu.
Ocena ryzyka
Organizacja może być narażona na wyciek poufnych danych z pamięci sterty lub na niestabilność systemu, jeśli aplikacja korzysta z funkcji ungetwc na strumieniach z określonymi kodowaniami znaków (np. Shift-JIS).
Rekomendacja
Zaleca się aktualizację GNU C Library do wersji 2.44 lub nowszej, która zawiera poprawkę dla tego błędu. Jeśli aktualizacja nie jest możliwa, należy unikać używania ungetwc z zestawami znaków, w których występują nakładające się reprezentacje jednobajtowe i wielobajtowe.
Inne podatności w GNU C Library
Zobacz wszystkie- CVE-2024-2961Wysokie
Funkcja iconv() w bibliotece GNU C w wersjach 2.39 i starszych może przepełnić bufor wyjściowy o maksymalnie 4 bajty podczas konwersji ciągów do zestawu znaków ISO-2022-CN-EXT. Może to prowadzić do awarii aplikacji lub nadpisania sąsiedniej zmiennej.
- CVE-2023-4911Wysokie
W bibliotece GNU C Library odkryto przepełnienie bufora w dynamicznym loaderze ld.so podczas przetwarzania zmiennej środowiskowej GLIBC_TUNABLES. Problem ten może umożliwić lokalnemu atakującemu wykorzystanie złośliwie skonstruowanych zmiennych środowiskowych GLIBC_TUNABLES przy uruchamianiu binariów z uprawnieniami SUID do wykonania kodu z podwyższonymi uprawnieniami.
- CVE-2025-0395Średnie
W GNU C Library w wersjach 2.13 do 2.40, funkcja assert() przy błędzie nie alokuje wystarczającej ilości miejsca na komunikat o błędzie asercji i informacje o rozmiarze, co może prowadzić do przepełnienia bufora, jeśli rozmiar komunikatu jest wyrównany do rozmiaru strony.
- CVE-2025-4802Średnie
W GNU C Library w wersjach 2.27 do 2.38, podatność na nieufną zmienną środowiskową LD_LIBRARY_PATH pozwala na ładowanie dynamicznie współdzielonych bibliotek kontrolowanych przez atakującego w statycznie skompilowanych binariach setuid, które wywołują dlopen (w tym wewnętrzne wywołania dlopen po setlocale lub wywołania funkcji NSS).
- CVE-2026-5450Krytyczne
Podatność w bibliotece GNU C Library (glibc) w wersjach od 2.7 do 2.43. Wywołanie funkcji z rodziny scanf z formatem %mc (dopasowanie znaku z alokacją pamięci) i jawną szerokością większą niż 1024 może prowadzić do przepełnienia sterty o jeden bajt.
- CVE-2026-18374Średnie
Przekazanie praktycznie pustego ciągu znaków do rozszerzenia składni `,ccs=` w argumencie trybu funkcji `fopen` w GNU C Library w wersji 2.45 lub wcześniejszej może skutkować przepełnieniem bufora na stercie, gdy ciąg trybu wejściowego jest kontrolowany przez atakującego. Ten wzorzec użycia nie występuje w typowych aplikacjach w dystrybucjach GNU/Linux, a aplikacje przetwarzające wartości dostarczone przez użytkownika dla `ccs` nie powinny przekazywać ich bez walidacji.
- CVE-2026-6368Niskie
Wywołanie funkcji wordexp z flagą WRDE_APPEND w GNU C Library od wersji 2.0 do 2.43 może spowodować zwrócenie nieprawidłowej pamięci w elemencie we_wordv, co przy kolejnych wywołaniach wordfree może przerwać proces.
- CVE-2026-6238Średnie
W bibliotece GNU C Library (glibc) w wersjach od 2.0.1 do 2.43 wykryto podatność w przestarzałych funkcjach ns_printrrf, ns_printrr i fp_nquery. Funkcje te nie walidują poprawności danych RDATA względem długości RDATA w odpowiedziach DNS dla rekordów A6, CERT, LOC, TKEY lub TSIG, co może umożliwić atakującemu spreparowanie odpowiedzi DNS powodującej awarię aplikacji lub odczyt niezainicjalizowanej pamięci.
- CVE-2026-5435Wysokie
W bibliotece GNU C Library (glibc) w wersji 2.2 i nowszych, przestarzałe funkcje ns_printrrf, ns_printrr oraz fp_nquery nie sprawdzają długości bufora dostarczonego przez wywołującego, co może prowadzić do zapisu poza zakresem podczas wypisywania rekordów TSIG.
- CVE-2026-4046Wysokie
Funkcja iconv() w GNU C Library w wersjach 2.43 i wcześniejszych może ulec awarii z powodu błędu asercji podczas konwersji danych wejściowych ze stron kodowych IBM1390 lub IBM1399. Podatność ta może być zdalnie wykorzystana do przerwania działania aplikacji.
Oryginalny opis (angielski, źródło NVD)
Calling the ungetwc function on a FILE stream with wide characters encoded in a character set that has overlaps between its single byte and multi-byte character encodings, in the GNU C Library version 2.43 or earlier, may result in an attempt to read bytes before an allocated buffer, potentially resulting in unintentional disclosure of neighboring data in the heap, or a program crash. A bug in the wide character pushback implementation (_IO_wdefault_pbackfail in libio/wgenops.c) causes ungetwc() to operate on the regular character buffer (fp->_IO_read_ptr) instead of the actual wide-stream read pointer (fp->_wide_data->_IO_read_ptr). The program crash may happen in cases where fp->_IO_read_ptr is not initialized and hence points to NULL. The buffer under-read requires a special situation where the input character encoding is such that there are overlaps between single byte representations and multibyte representations in that encoding, resulting in spurious matches. The spurious match case is not possible in the standard Unicode character sets.

