CVE-2026-3904
ŚrednieCVSS 6.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
W bibliotece GNU C Library w wersji 2.36 na systemach x86_64, wywołanie funkcji korzystających z pamięci podręcznej nscd może prowadzić do awarii. Problem wynika z optymalizacji memcmp, która przy współbieżnej modyfikacji danych przez inne wątki może powodować crash klienta nscd i aplikacji go używającej.
Ocena ryzyka
Podatność może prowadzić do awarii aplikacji korzystających z nscd w warunkach wysokiego obciążenia, co skutkuje przerwaniem działania usług sieciowych i potencjalną utratą dostępności systemu.
Rekomendacja
Należy zaktualizować bibliotekę GNU C Library do wersji zawierającej poprawkę dla tego problemu. Dystrybucje, które zastosowały optymalizację memcmp SSE2, powinny również zastosować łatkę, aby uniknąć awarii klienta nscd.
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-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-2023-4911WysokieAktywnie exploitowane
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-2026-8674Średnie
Inicjalizacja resolvera DNS z pliku /etc/resolv.conf lub zmiennej środowiskowej LOCALDOMAIN, gdy lista wyszukiwania zawiera domenę o długości około 200 znaków lub więcej, w GNU C Library w wersjach 2.26 do 2.44 powoduje błąd asercji, który przerywa proces. Resolver obcina listę wyszukiwania przy kopiowaniu do bufora o stałym rozmiarze _res.defdname, ale kontrola spójności porównuje z niewłaściwym rozmiarem i nie obsługuje pierwszego wpisu, który się nie mieści, co prowadzi do niepowodzenia asercji.
- CVE-2026-80489Średnie
Konwersja spreparowanego wejścia EUC_JISX0213 do UCS-4 lub wewnętrznego kodowania szerokich znaków, na przykład za pomocą iconv, w GNU C Library w wersjach od 2.3 do 2.44 może spowodować, że konwerter nie robi postępów, powodując zawieszenie aplikacji wywołującej. Niektóre sekwencje EUC_JISX0213 dekodują się do dwóch punktów kodowych; jeśli bufor wyjściowy ma miejsce tylko na pierwszy z nich, konwerter zapisuje drugi w stanie konwersji i zwraca E2BIG, ale nigdy nie czyści tego oczekującego znaku po jego wyemitowaniu w następnym wywołaniu. Konwerter następnie stale emituje oczekujący znak bez zużywania dalszego wejścia, więc aplikacja ponawiająca konwersję zapętla się w nieskończoność. Wejście musi być kontrolowane przez atakującego, a aplikacja musi konwertować je z buforem wyjściowym wystarczająco małym, by rozdzielić dwa punkty kodowe. Dotyczy tylko zestawu znaków EUC_JISX0213, który nie jest powszechnie używany.
- CVE-2026-77117Średnie
Konwersja spreparowanego wejścia SHIFT_JISX0213 do UCS-4 lub wewnętrznego kodowania szerokich znaków, na przykład za pomocą iconv, w GNU C Library w wersjach od 2.3 do 2.44 może spowodować, że konwerter nie robi postępów, powodując zawieszenie aplikacji wywołującej. Niektóre sekwencje SHIFT_JISX0213 dekodują się do dwóch punktów kodowych; jeśli bufor wyjściowy ma miejsce tylko na pierwszy z nich, konwerter zapisuje drugi w stanie konwersji i zwraca E2BIG, ale nigdy nie czyści tego oczekującego znaku po jego wyemitowaniu w następnym wywołaniu. Konwerter następnie stale emituje oczekujący znak bez zużywania dalszego wejścia, więc aplikacja ponawiająca konwersję zapętla się w nieskończoność. Wejście musi być kontrolowane przez atakującego, a aplikacja musi konwertować je z buforem wyjściowym wystarczająco małym, by rozdzielić dwa punkty kodowe. Dotyczy tylko zestawu znaków SHIFT_JISX0213, który nie jest powszechnie używany.
- CVE-2026-19542Średnie
W GNU C Library w wersjach od 2.1 do 2.44 wywołanie tdelete na wystarczająco głębokim drzewie może zapisać jeden wskaźnik poza końcem tablicy alokowanej przez alloca na stosie, co może spowodować awarię aplikacji. Implementacja tdelete utrzymuje jawny stos węzłów nadrzędnych do rebalansowania, który jest powiększany w razie potrzeby podczas schodzenia w drzewie; dwie gałęzie rebalansowania dodają wpis bez sprawdzenia pojemności.
- CVE-2026-19499Wysokie
W GNU C Library w wersjach od 2.38 do 2.44 wywołanie strfmon lub strfmon_l może zapisać dane poza końcem bufora wyjściowego dostarczonego przez wywołującego, gdy konwersja używa wyrównania do prawej z dopełnianiem szerokości. Wykorzystanie wymaga ścieżki kodu aplikacji wywołującej te funkcje z takim dopełnianiem do bufora wystarczająco dużego dla dopełnienia, ale zbyt małego dla wewnętrznego wywołania memmove. W momencie publikacji nie są znane żadne skutki dla aplikacji dostępnych sieciowo.
Oryginalny opis (angielski, źródło NVD)
Calling NSS-backed functions that support caching via nscd may call the nscd client side code and in the GNU C Library version 2.36 under high load on x86_64 systems, the client may call memcmp on inputs that are concurrently modified by other processes or threads and crash. The nscd client in the GNU C Library uses the memcmp function with inputs that may be concurrently modified by another thread, potentially resulting in spurious cache misses, which in itself is not a security issue. However in the GNU C Library version 2.36 an optimized implementation of memcmp was introduced for x86_64 which could crash when invoked with such undefined behaviour, turning this into a potential crash of the nscd client and the application that uses it. This implementation was backported to the 2.35 branch, making the nscd client in that branch vulnerable as well. Subsequently, the fix for this issue was backported to all vulnerable branches in the GNU C Library repository. It is advised that distributions that may have cherry-picked the memcpy SSE2 optimization in their copy of the GNU C Library, also apply the fix to avoid the potential crash in the nscd client.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

