CVE-2026-74612
KrytyczneCVSS 10.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 40 - wyżej niż 40% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność w interfejsie veth, gdzie po dostosowaniu fragmentów XDP nieprawidłowo aktualizowano długość skb. Prowadziło to do kopiowania danych poza faktyczny obszar liniowy, w tym do wycieku wskaźników jądra do przestrzeni użytkownika. Dodatkowo, funkcja bpf_xdp_pull_data() mogła wywołać asercję SKB_LINEAR_ASSERT() z powodu nieprawidłowego zarządzania wskaźnikiem ogona.
Ocena ryzyka
Podatność może prowadzić do wycieku wrażliwych danych z jądra (np. wskaźników) do procesów użytkownika oraz do uszkodzenia danych pakietów, co może być wykorzystane do eskalacji uprawnień lub destabilizacji systemu.
Rekomendacja
Zaleca się natychmiastowe zastosowanie poprawki z jądra Linux, która synchronizuje skb->len i skb->data_len oraz używa skb_set_tail_pointer() zamiast __skb_put(). Należy zaktualizować system do wersji jądra zawierającej tę poprawkę.
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: veth: fix skb length accounting after XDP frag adjustment veth exposes non-linear skb fragments through an xdp_buff. If an XDP program adjusts the fragment area, veth_xdp_rcv_skb() copies xdp_frags_size back to skb->data_len but leaves skb->len containing the old fragment contribution. After a fragment shrink, this makes skb_headlen() larger than the actual linear area. In the reproduced UDP receive path, __skb_datagram_iter() copied 1024 bytes past the actual linear tail to userspace, starting at struct skb_shared_info. The copied bytes included the affected skb's nr_frags, xdp_frags_size, and a kernel pointer from skb_shinfo(skb)->frags[0]. Real packet data was displaced by the same amount and truncated at the end. Subtract the old data_len before replacing it and add the new data_len afterwards, keeping skb->len and skb->data_len synchronized. Additionally, bpf_xdp_pull_data() can advance data_end while leaving frags present. The skb is then still non-linear, so the old __skb_put(skb, off) triggers SKB_LINEAR_ASSERT(). Use skb_set_tail_pointer() and update skb->len explicitly instead, following bpf_prog_run_generic_xdp(). Unlike __skb_put(), skb_set_tail_pointer() does not require a linear skb. A 60000-byte UDP datagram on a veth pair with MTU 64000 was shortened by 1024 bytes from its fragment area. Before the fix, all 10 runs produced corrupted payloads. After the fix, all 10 runs matched the expected payload exactly. A forced-tailroom reproducer also exercises bpf_xdp_pull_data() with frags still present; the old code triggers SKB_LINEAR_ASSERT(), while this fix passes 10/10 runs.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

