CVE-2025-39977
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność w mechanizmie futex, umożliwiającą użycie po zwolnieniu (use-after-free) podczas operacji requeue-PI. Błąd wynika z braku synchronizacji odczytu pola futex_q::task przed aktualizacją stanu requeue, co może prowadzić do wyścigu i dostępu do już zwolnionej pamięci.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do eskalacji uprawnień lub wywołania awarii systemu (kernel panic) poprzez celowe wywołanie wyścigu w operacjach futex. Ryzyko jest szczególnie wysokie w środowiskach wielowątkowych i wieloprocesorowych.
Rekomendacja
Należy niezwłocznie zaaplikować łatkę z jądra Linux zawierającą poprawkę dla CVE-2025-39977. Zaleca się aktualizację do wersji jądra zawierającej commit rozwiązujący problem.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-80577Nieznane
W jądrze Linux w sterowniku drm/panthor funkcja panthor_fw_load_section_entry() pomija tworzenie BO dla sekcji firmware o zerowym rozmiarze, ale dodaje je do listy sekcji, co prowadzi do dereferencji NULL w późniejszych ścieżkach. Poprawka polega na pomijaniu dodawania takich sekcji do listy.
- CVE-2026-80571Nieznane
W jądrze Linux w podsystemie powerpc/pseries (papr-phy-attest) brakowało walidacji pola cmd.length, co mogło prowadzić do przepełnienia bufora. Dodano sprawdzanie długości i zwracanie błędu, a także naprawiono wyciek pamięci na ścieżkach błędów.
- CVE-2026-80567Nieznane
W jądrze Linux w sterowniku Synaptics RMI4 (F54) naprawiono błąd, w którym błędy wątku roboczego nie były propagowane do kolejki V4L2. Wcześniej, jeśli wątek roboczy zawiódł, kolejka zwracała sukces, dostarczając nieaktualne lub niezainicjalizowane dane do przestrzeni użytkownika.
- CVE-2026-80566Nieznane
W jądrze Linux w sterowniku hynitron_cstxxx nieprawidłowo sprawdzano liczbę dotknięć i identyfikatory palców. Może to prowadzić do uszkodzenia stanu dotyku lub odczytu poza zakresem bufora.
- CVE-2026-80564Nieznane
W jądrze Linux w sterowniku gve brakuje implementacji funkcji adjfine, co prowadzi do wyłuskania pustego wskaźnika (NULL dereference) podczas wywołania z przestrzeni użytkownika, np. przez testptp.
- CVE-2026-80563Nieznane
W jądrze Linux wykryto podatność use-after-free w sterowniku gpio-sloppy-logic-analyzer. Plik debugfs 'trigger' nie posiadał odpowiedniego zabezpieczenia, co pozwalało na zapis do zwolnionej pamięci podczas odłączania urządzenia. Problem został naprawiony przez użycie debugfs_create_file() zamiast debugfs_create_file_unsafe().
- CVE-2026-80543Nieznane
W jądrze Linux w funkcjach xcrb_msg_to_type6cprb_msgx() i xcrb_msg_to_type6_ep11cprb_msgx() dla s390/zcrypt kopiowana jest wiadomość z przestrzeni użytkownika do bufora jądra na podstawie długości, ale dalsze przetwarzanie zakłada wyrównanie do 4 bajtów. W rezultacie do 3 bajtów niezainicjalizowanej pamięci jądra jest przekazywane do dalszych kroków, co może ujawnić pamięć jądra firmware'owi karty kryptograficznej.
- CVE-2026-80542Nieznane
W jądrze Linux w sterowniku amdgpu dla AMD Display występuje błąd NULL pointer dereference w funkcji amdgpu_dm_crtc_set_vblank(), gdy vblank jest włączany lub odpytywany przed podłączeniem strumienia do acrtc_state->stream. Może to prowadzić do awarii systemu.
- CVE-2026-80535Nieznane
W jądrze Linux w systemie plików XFS podczas naprawy drzewa katalogów (dirtree scrubber) może zostać wykryty katalog odnoszący się do samego siebie. W takim przypadku kod naprawczy próbuje zablokować ten sam inode dwukrotnie (podwójne założenie blokady iolock/ilock), co prowadzi do zakleszczenia. Poprawka polega na wykryciu tego przypadku i odpowiednim jego obsłużeniu.
- CVE-2026-80533Nieznane
W jądrze Linux w systemie plików XFS podczas naprawy listy niepołączonych inodów (AGI repair) funkcja xrep_iunlink_walk_ondisk_bucket może próbować użyć wskaźnika sc->sa.agi_bp, który może być pusty (null), jeśli weryfikator bufora zawiedzie. Poprawka polega na użyciu ragi->agi_bp, który pomija weryfikację, aby uniknąć przejścia poza koniec pamięci.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: futex: Prevent use-after-free during requeue-PI syzbot managed to trigger the following race: T1 T2 futex_wait_requeue_pi() futex_do_wait() schedule() futex_requeue() futex_proxy_trylock_atomic() futex_requeue_pi_prepare() requeue_pi_wake_futex() futex_requeue_pi_complete() /* preempt */ * timeout/ signal wakes T1 * futex_requeue_pi_wakeup_sync() // Q_REQUEUE_PI_LOCKED futex_hash_put() // back to userland, on stack futex_q is garbage /* back */ wake_up_state(q->task, TASK_NORMAL); In this scenario futex_wait_requeue_pi() is able to leave without using futex_q::lock_ptr for synchronization. This can be prevented by reading futex_q::task before updating the futex_q::requeue_state. A reference on the task_struct is not needed because requeue_pi_wake_futex() is invoked with a spinlock_t held which implies a RCU read section. Even if T1 terminates immediately after, the task_struct will remain valid during T2's wake_up_state(). A READ_ONCE on futex_q::task before futex_requeue_pi_complete() is enough because it ensures that the variable is read before the state is updated. Read futex_q::task before updating the requeue state, use it for the following wakeup.

