CVE-2026-98549
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
W jądrze Linux naprawiono podatność w stosie TCP dotyczącą łączenia (collapse) skb w kolejce retransmisji. Funkcja tcp_write_collapse_fence() nie działała, gdy kolejka zapisu była pusta, co pozwalało na scalenie skb wysłanych po włączeniu szyfrowania urządzenia z wcześniejszymi skb. W efekcie dane mogły być retransmitowane w postaci jawnej (psp) lub połączenie mogło się zawieszać (tls device offload).
Ocena ryzyka
Organizacja może doświadczyć wycieku danych w postaci jawnej podczas retransmisji w przypadku korzystania z szyfrowania urządzenia psp lub trwałego zawieszenia połączeń TLS z offloadem na urządzeniach mlx5, nfp i funeth.
Rekomendacja
Należy jak najszybciej zaktualizować jądro Linux do wersji zawierającej poprawkę. Do czasu aktualizacji zaleca się unikanie konfiguracji wykorzystujących szyfrowanie urządzenia psp oraz TLS device offload na wymienionych sterownikach.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-99087Nieznane
W jądrze Linux w dm-integrity występuje błąd, który powoduje dereferencję wskaźnika NULL, gdy urządzenie ma ustawioną flagę SB_FLAG_DIRTY_BITMAP i jest aktywowane w trybie 'R'. Funkcja dm_integrity_resume próbuje odczytać dziennik zawierający bitmapę, co prowadzi do awarii. Poprawka pomija zapisy do urządzenia w trybie 'R' podczas wznawiania.
- CVE-2026-99086Nieznane
W jądrze Linux dm-integrity nie waliduje superbloku podczas wznawiania urządzenia, co pozwala użytkownikowi zmodyfikować superblok na nośniku podczas zawieszenia urządzenia. Może to prowadzić do niezgodności rozmiarów struktur w pamięci i zapisu poza dziennik, w tym zapisu 512 bajtów przez wskaźnik NULL. Poprawka zapisuje zwalidowany superblok w konstruktorze i odmawia wznowienia, jeśli geometria na dysku uległa zmianie.
- CVE-2026-99085Nieznane
W jądrze Linux naprawiono błąd w schedulerze sched_ext, który powodował zawieszenie przy wyłączaniu CPU, gdy zadania wygasającego procesora pozostawały w kolejce BPF schedulera. Zadania te były nadal liczone w runqueue, ale nieaktywny CPU nie wywoływał ops.dispatch() i nie mógł ich przejąć, co blokowało wątek hotplug i cpu_down() trzymający cpu_hotplug_lock. Poprawka ponownie kolejkuje zadania z offline'owanego rq na lokalny DSQ, aby balance_push() mógł je przenieść.
- CVE-2026-99084Nieznane
W jądrze Linux naprawiono problem w iterate_dir(), gdzie blokada i_rwsem katalogu była trzymana podczas odczytu katalogu, nawet jeśli katalog jest niezmienny i nigdy nie jest usuwany. Dla katalogu instancji nullfs (współdzielonego przez wiele przestrzeni nazw montowania i wątków jądra) złośliwy czytelnik mógł zablokować tę blokadę na dowolnie długo, blokując operacje mkdir, wyszukiwania i montowania dla innych użytkowników. Dodano flagę FOP_IMMUTABLE, która pozwala pominąć blokadę dla takich katalogów.
- CVE-2026-99080Nieznane
W jądrze Linux w funkcji clear_inode() występuje wyciek węzłów xarray, który można wywołać m.in. przez madvise. Zamiast naprawiać wycieki w miejscach ich powstawania, poprawka wywołuje xa_destroy(), co dodatkowo cyklicznie zwalnia i pobiera blokadę i_pages.
- CVE-2026-99076Nieznane
W jądrze Linux naprawiono podatność w obsłudze IPv6/UDP, która pozwalała atakującemu spoza ścieżki na atak side-channel na pamięć podręczną wyjątków (exception cache). Poprzednio wyjątek był tworzony tylko wtedy, gdy pakiet UDP dało się dopasować do istniejącego gniazda, co umożliwiało odkrycie efemerycznego portu używanego przez połączone gniazdo UDP. Poprawka polega na zawsze tworzeniu wyjątku przed próbą dopasowania gniazda.
- CVE-2026-99075Nieznane
W jądrze Linux w module rust_binder występuje błąd związany z aktualizacją licznika referencji węzła przy zakończeniu wątku. Gdy wątek kończy się przez BINDER_THREAD_EXIT, oczekująca aktualizacja licznika referencji mogła zostać utracona, ponieważ funkcje Node::cancel() i NodeWrapper::cancel() były puste. Prowadzi to do desynchronizacji stanu dostarczania węzła i braku powiadomienia przestrzeni użytkownika, przez co węzeł może nigdy nie zostać zwolniony.
- CVE-2026-99074Nieznane
W jądrze Linux w podsystemie IPv4 występuje błąd use-after-free/null-ptr-deref podczas aktualizacji PMTU, gdy grupa nexthop ulega zmniejszeniu. Funkcja __ip_rt_update_pmtu() iteruje po ścieżkach, a równoległa zamiana grupy nexthop może spowodować, że fib_info_nhc() zwróci NULL, co jest następnie dereferencjonowane w update_or_create_fnhe(). Wymaga to uprawnień CAP_NET_ADMIN w przestrzeni nazw sieci, ale w środowiskach z nieuprzywilejowanymi przestrzeniami nazw użytkownika lokalny użytkownik może je uzyskać.
- CVE-2026-99073Nieznane
W jądrze Linux w podsystemie IPv4 występuje błąd null-ptr-deref podczas zrzutu wyjątków FIB, gdy grupa nexthop ulega zmniejszeniu. Funkcja fib_dump_info_fnhe() używa fib_info_num_path() jako granicy pętli, a następnie fib_info_nhc() niezależnie przeładowuje nh->nh_grp; jeśli RTM_NEWNEXTHOP zamieni grupę na mniejszą, fib_info_nhc() zwróci NULL i zrzut go zdereferencjonuje. Poprawka zatrzymuje iterację, gdy indeksowana ścieżka jest nieobecna.
- CVE-2026-99072Nieznane
W jądrze Linux w podsystemie IPv4 występuje błąd null-ptr-deref podczas obliczania rozmiaru powiadomienia o trasie, gdy grupa nexthop ulega zmniejszeniu. Funkcja fib_nlmsg_size() sprawdza fib_info_num_path() przed każdą iteracją, a następnie fib_info_nhc() niezależnie przeładowuje nh->nh_grp; jeśli RTM_NEWNEXTHOP zamieni grupę na mniejszą, fib_info_nhc() zwróci NULL i fib_nexthop_nlmsg_size() go zdereferencjonuje. Poprawka zatrzymuje obliczanie, gdy indeksowana ścieżka jest nieobecna.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: tcp: prevent collapsing skbs across boundary in rtx queue tcp_write_collapse_fence() sets TCP_SKB_CB(skb)->eor = 1 on tcp_write_queue_tail(sk) to prevent skbs queued after a switch to device encryption from being collapsed into earlier skbs. The fence is a no-op if all earlier data has already been transmitted when the switch happens: sk->sk_write_queue is empty. The not yet acknowledged earlier skbs wait in sk->tcp_rtx_queue with eor 0. On a subsequent retransmit or SACK shift, tcp_retrans_try_collapse() or tcp_shift_skb_data() can then merge an skb queued after the switch into one queued before it. Both users of the fence are affected: - psp: devices only encrypt skbs with skb->decrypted set. The merged skb keeps decrypted = 0 from the earlier skb, so merged data sent after psp_sock_assoc_set_tx() is retransmitted in cleartext. - tls device offload: the merged skb straddles the start marker set in tls_set_device_offload(). The software fallback (fill_sg_in() returns -EINVAL) and the mlx5, nfp and funeth drivers cannot handle such an skb and drop it. Every retransmit rebuilds the same skb, so the connection stalls. Fix this in two places, for defense in depth: 1. Fall back to tcp_rtx_queue_tail(sk) in tcp_write_collapse_fence() when tcp_write_queue_tail(sk) is NULL. 2. Check !skb_cmp_decrypted(to, from) in tcp_skb_can_collapse(), as tcp_skb_can_collapse_rx() does on receive. skb_shift(), which both collapse paths call, already has a DEBUG_NET_WARN_ON_ONCE() for this condition.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

