Katalog CVE

CVE-2026-5928

WysokieCVSS 7.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.35%

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

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