CVE-2026-74628
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 40 - wyżej niż 40% wszystkich znanych CVE
Streszczenie
W jądrze Linuxa w protokole X.25 występuje błąd użycia po zwolnieniu (use-after-free) gniazda przez jego timery. Timery są uzbrajane za pomocą mod_timer() i anulowane za pomocą timer_delete(), więc oczekujący timer nie trzyma referencji na gniazdo, a anulowanie nie czeka na wywołanie zwrotne już działające na innym CPU. x25_heartbeat_expiry() również bezwarunkowo ponownie uzbraja timer, co może prowadzić do użycia po zwolnieniu.
Ocena ryzyka
Ryzyko obejmuje użycie po zwolnieniu pamięci, co może prowadzić do awarii systemu lub eskalacji uprawnień w jądrze.
Rekomendacja
Zaleca się zastosowanie poprawki jądra, która używa sk_reset_timer() i sk_stop_timer() oraz odpowiednio zarządza referencjami.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-98384Nieznane
W jądrze Linux funkcja bpf_sock_destroy() odczytuje sk_protocol z niewłaściwej struktury, co prowadzi do odczytu poza zakresem pamięci. Problem dotyczy gniazd TIME_WAIT i request sock przekazywanych przez iterator TCP. Naprawa ogranicza sprawdzanie sk_protocol tylko do pełnych gniazd.
- CVE-2026-98383Nieznane
W jądrze Linux programy LWT_SEG6LOCAL mogą unieważnić bufor SRH, a następnie wywołać bpf_skb_pull_data(), co może prowadzić do zwisającego wskaźnika i zapisu po zwolnieniu pamięci. Naprawa zabrania używania bpf_skb_pull_data() w programach LWT_SEG6LOCAL.
- CVE-2026-98382Nieznane
W jądrze Linux mechanizm dopasowywania programów BPF do urządzeń sieciowych ma lukę, która pozwala uruchomić program związany z jednym urządzeniem na innym, co prowadzi do naruszenia pamięci. Naprawa ogranicza dopasowanie do dokładnych urządzeń dla programów nieprzeznaczonych do offloadu.
- CVE-2026-98381Nieznane
W jądrze Linux, podczas zmiany liczby kanałów w interfejsie veth, wskaźniki programów XDP nie są czyszczone dla usuniętych kolejek RX. Może to prowadzić do uruchomienia zwolnionego programu po ponownym zwiększeniu liczby kanałów, powodując awarię systemu.
- CVE-2026-98380Nieznane
W jądrze Linuxa w podsystemie net/sched wykryto podatność polegającą na tym, że funkcja tcf_action_delete() nie sprawdza, czy wynik wyszukiwania w IDR jest wskaźnikiem błędu (ERR_PTR). Atakujący może wykorzystać wyścig, aby podmienić akcję na wskaźnik błędu, co prowadzi do dereferencji pustego wskaźnika i paniki jądra.
- CVE-2026-98379Nieznane
W jądrze Linuxa wykryto podatność w module netfilter ip6t_rpfilter, gdzie funkcja ip6_route_lookup() może zwrócić trasę bez urządzenia inet6_dev (wskaźnik NULL). Nieuprawniony użytkownik może wykorzystać ten stan, obniżając MTU zewnętrznego interfejsu poniżej IPV6_MIN_MTU, co prowadzi do dereferencji wskaźnika NULL i paniki jądra.
- CVE-2026-98378Nieznane
W jądrze Linux podatność w mechanizmie BPF link iterator. Funkcja bpf_link_prime() wstawia link do link_idr przed publikacją ID, a iterator linków pobiera referencję bez sprawdzenia, czy link jest już osadzony (ID równe zero). Jeśli anon_inode_getfile() zawiedzie, iterator pozostaje z wiszącą referencją, a kolejne bpf_link_put() powoduje użycie zwolnionej pamięci (use-after-free).
- CVE-2026-98377Nieznane
W jądrze Linux podatność w funkcji __vlan_insert_inner_tag(), która nie wymaga obecności nagłówka MAC przed jego nadpisaniem. Przy wysyłce bardzo krótkiej ramki przez urządzenie IFF_TUN kolejne operacje push VLAN mogą wciągnąć do ramki niezainicjalizowane bajty z pamięci slab, powodując wyciek danych jądra.
- CVE-2026-98376Nieznane
W jądrze Linux podatność w obsłudze map BPF typu percpu array używanych jako mapy wewnętrzne. Funkcja porównująca metadane map nie sprawdza liczby max_entries, więc podmiana mapy wewnętrznej na mniejszą omija walidację, a wbudowany w JIT index_mask może prowadzić do dostępu poza zakres tablicy pptrs[].
- CVE-2026-98375Nieznane
W jądrze Linux sterownik xen/netfront nie sprawdza długości pierwszego slotu RX względem ETH_HLEN przed wywołaniem eth_type_trans(). Jeśli pierwszy slot jest krótszy niż nagłówek Ethernet, może dojść do błędu BUG() w __skb_pull() lub odczytu poza końcem danych.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: net/x25: fix use-after-free of the socket by its timers The x25 timers are armed with mod_timer() and cancelled with timer_delete(), so a pending timer holds no reference on the socket and a cancel does not wait for a callback already running on another CPU. x25_heartbeat_expiry() also rearms unconditionally, so it can reinstall sk->sk_timer after __x25_destroy_socket() has passed its cancel point. The following __sock_put() frees the socket while the timer is still queued, and the next expiry uses freed memory. KASAN reports a slab-use-after-free on the kmalloc-2k object freed by close(). timer_delete_sync() cannot be used here: x25_heartbeat_expiry() and x25_timer_expiry() both reach the cancels from inside the timer they would wait on, through __x25_destroy_socket() and x25_disconnect(). Arm the timers with sk_reset_timer() and cancel them with sk_stop_timer() so that an armed timer owns a reference, and release it in both expiry handlers. Rearm the heartbeat only while sk_hashed(sk) is still true, since __x25_destroy_socket() unlinks the socket before dropping it. Arm the deferred destroy timer the same way and drop its reference in x25_destroy_timer(). Reproduced on net with KASAN, with the heartbeat period shortened so the window recurs. With this patch the reproducer no longer triggers a report and /proc/net/x25 drains. Discovered by XBOW, triaged by Baul Lee <[email protected]>
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

