Podatności Linux kernel
10 406 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-98074Niskie ryzyko· EPSS 7%
W jądrze Linux w sterowniku bonding występuje podatność polegająca na przedwczesnym wyczyszczeniu wskaźnika curr_active_slave podczas zwalniania wszystkich interfejsów. Może to prowadzić do wycieku trybu promiscuous na fizycznym urządzeniu po zakończeniu pracy bonda.
- CVE-2026-98073Wysokie
W jądrze Linux występuje problem w funkcji __dev_change_net_namespace(), gdzie konfliktujące alternatywne nazwy (altnames) urządzeń sieciowych nie są usuwane przy zmianie przestrzeni nazw sieci. Prowadzi to do ostrzeżenia w cfg80211_pernet_exit() podczas usuwania nie-rootowej przestrzeni nazw, gdy dwa urządzenia mają przypisaną tę samą altname. Podatność dotyczy sytuacji, w której urządzenie w init_net ma konfliktującą altname z urządzeniem w usuwanej przestrzeni nazw.
- CVE-2026-98072Niskie ryzyko· EPSS 7%
W jądrze Linux w funkcji release_in_xmit() w podsystemie net/rds występuje błąd synchronizacji pamięci. Użycie clear_bit_unlock() bez pełnej bariery pamięci przed sprawdzeniem waitqueue_active() może prowadzić do utraty wybudzenia (lost wake-up) wątków oczekujących w rds_conn_shutdown() i rds_tcp_reset_callbacks().
- CVE-2026-98071Niskie ryzyko· EPSS 7%
W jądrze Linux w podsystemie RDS wykryto wyścig danych (data race) w funkcji rds_conn_path_reset(), która zeruje całe słowo flag cp_flags zwykłym zapisem, podczas gdy inne operacje używają atomowych bitops. Może to prowadzić do utraty aktualizacji flag, co destabilizuje zarządzanie połączeniami RDS.
- CVE-2026-98070Wysokie
W jądrze Linux naprawiono podatność w module net/rds. Funkcja rds_tcp_reset_callbacks() wyciszała ścieżkę transmisji, oczekując na zwolnienie flagi RDS_IN_XMIT, zamiast przejąć blokadę, co na architekturach ze słabym uporządkowaniem pamięci mogło prowadzić do równoczesnego działania transmisji i resetu stanu cp_xmit_*.
- CVE-2026-98069Wysokie
W jądrze Linux naprawiono błąd w net/rds, gdzie funkcja rds_conn_shutdown() jedynie sprawdzała, czy flagi RDS_IN_XMIT i RDS_RECV_REFILL są wyczyszczone, zamiast przejąć ich blokady. Na architekturach ze słabym uporządkowaniem pamięci ścieżka transmisji mogła wznowić działanie równolegle z demontażem połączenia, prowadząc do wyścigu i uszkodzenia stanu. Poprawka polega na przejęciu obu blokad fastpath przed zamknięciem transportu i przywróceniu ich po zakończeniu resetu ścieżki.
- CVE-2026-98068Niskie ryzyko· EPSS 7%
W jądrze Linux w podsystemie RDS (Reliable Datagram Sockets) wykryto podatność, w której funkcja rds_conn_shutdown() może skonsumować współbieżne wywołanie drop, prowadząc do zakleszczenia ścieżki połączenia w stanie RDS_CONN_DOWN. Problem dotyczy wyścigu między zamykaniem połączenia a akceptacją nowego gniazda, co może skutkować brakiem poprawnego zakończenia sesji i narastaniem kolejki odbiorczej.
- CVE-2026-98067Niskie ryzyko· EPSS 5%
W jądrze Linux wykryto podatność w systemie plików EROFS związaną z dekompresją LZ4. Optymalizacja 'rolling decompression' może prowadzić do uszkodzenia danych, ponieważ implementacja LZ4 może kopiować literały wstecz, co łamie założenia algorytmu. Podatność została załatana poprzez tymczasowe wyłączenie tej optymalizacji.
- CVE-2026-98066Niskie ryzyko· EPSS 7%
W sterowniku ALSA caiaq w jądrze Linux występuje podatność polegająca na potencjalnym podwójnym zwolnieniu pamięci (double-free) podczas obsługi błędów. Zasoby takie jak URBy mogą być zwalniane wielokrotnie, co prowadzi do nieprawidłowego zarządzania pamięcią.
- CVE-2026-98065Niskie ryzyko· EPSS 6%
W jądrze Linux występuje luka w podsystemie BPF, która pozwala na utworzenie mapy haszującej z BTF bez klucza (btf_key_type_id == 0). Po dodaniu callbacków ->map_check_btf do map htab i rhtab, walidacja przestała odrzucać takie mapy, co prowadzi do dereferencji NULL w funkcji btf_type_show() podczas odczytu mapy przez bpffs. W wyniku następuje awaria jądra (oops).
- CVE-2026-98064Niskie ryzyko· EPSS 7%
W jądrze Linux funkcja btf_modifier_show() bezwarunkowo wywołuje operację show() dla rozwiązanego typu, ale dla typu void (type_id 0, BTF_KIND_UNKN) nie ma wpisu w kind_ops[], więc wskaźnik show jest NULL. Program BPF przekazujący type_id typu "const void" z BTF vmlinux do bpf_snprintf_btf() powoduje dereferencję NULL. Poprawka wprowadza fallback do btf_df_show() z placeholderem "<unsupported kind:N>".
- CVE-2026-98063Niskie ryzyko· EPSS 7%
W jądrze Linux funkcja btf_var_show() bezwarunkowo wywołuje btf_type_id_resolve(), która dereferencjonuje btf->resolved_ids, będący NULL dla bazowego BTF (np. vmlinux BTF). Program BPF przekazujący type_id typu BTF_KIND_VAR z vmlinux BTF do bpf_snprintf_btf() powoduje dereferencję NULL. Poprawka rozwiązuje typ zmiennej bezpośrednio przez btf_type_skip_modifiers(), gdy resolved_ids jest NULL.
- CVE-2026-98062Średnie
W jądrze Linux punkty śledzenia signal_generate i signal_deliver deklarują argument info jako wskaźnik do struct kernel_siginfo, przez co btf_ctx_access() traktuje go jako zaufany wskaźnik dla programów tp_btf. Jednak dostarczanie sygnałów używa SEND_SIG_NOINFO (0) i SEND_SIG_PRIV (1) jako wartości specjalnych, które nie są wskaźnikami. Program tp_btf może wywołać dereferencję tych wartości i spowodować błąd jądra, a signal_generate może działać w kontekście przerwania timera, co prowadzi do paniki jądra.
- CVE-2026-98061Niskie ryzyko· EPSS 5%
W jądrze Linux tail call z niezerowej ramki jest modelowany jako powrót z tej ramki, a weryfikator ustawia R0 jako nieznane i wywołuje prepare_func_exit(). Gdy bieżąca ramka jest synchronicznym callbackiem, prepare_func_exit() wymusza kontrakt wartości zwracanej i oznacza R0 jako precise, co prowadzi do błędu weryfikatora "callback unexpected regs". Zadanie z CAP_BPF może wywołać WARN i błąd -EFAULT BPF_PROG_LOAD. Poprawka odrzuca tail call bezpośrednio z ramek callbacków.
- CVE-2026-98060Niskie ryzyko· EPSS 5%
W jądrze Linux funkcja __bpf_rbtree_add() utrzymuje wskaźniki parent i link aktywne podczas wywołań callbacku porównania dostarczonego przez program, więc weryfikator wymaga, aby blokada korzenia była trzymana przez cały callback. Ścieżka pomocnicza egzekwuje tę regułę dla bpf_spin_lock() i bpf_spin_unlock(), ale ścieżka argumentu kfunc resilient lock tego nie robi. Callback może zwolnić blokadę korzenia i pozwolić innemu CPU usunąć i zwolnić węzeł, którego dotyczy trwające przejście drzewa, co prowadzi do użycia zwolnionych wskaźników.
- CVE-2026-98059Średnie
W jądrze Linux funkcja do_wait() przekazuje wo->wo_pid do punktu śledzenia sched_process_wait, ale kernel_wait4() pozostawia wo_pid jako NULL dla wait4(-1), a kernel_waitid_prepare() robi to samo dla waitid(P_ALL). btf_ctx_access() typuje argument 0 jako PTR_TO_BTF_ID | PTR_TRUSTED bez PTR_MAYBE_NULL, więc weryfikator akceptuje niesprawdzoną dereferencję. Ponieważ zaufane wskaźniki nie mają ochrony przed błędami, oczekiwanie na dowolne dziecko może spowodować dereferencję NULL w kodzie BPF JIT. Poprawka oznacza argument 0 jako nullable.
- CVE-2026-98058Średnie
W jądrze Linux funkcje bpf_sys_bpf() i bpf_sys_close() mogą usypiać (np. przez muteksy, alokacje GFP_KERNEL, oczekiwanie na RCU grace period), ale nie mają ustawionego .might_sleep w prototypach. Są one ograniczone do BPF_PROG_TYPE_SYSCALL, którego program główny jest usypialny, ale callback bpf_timer zarejestrowany przez program syscall jest sprawdzany w kontekście nieusypialnym. Taki callback może wywołać bpf_sys_bpf() z kontekstu softirq hrtimer i wywołać błąd planowania w kontekście atomowym. Poprawka ustawia .might_sleep na obu prototypach.
- CVE-2026-98057Niskie ryzyko· EPSS 6%
W jądrze Linux kod walidacji trwałego bufora pierścieniowego używał meta->nr_subbufs bez sprawdzenia, czy odpowiada on nr_pages + 1, zakładając, że obie wartości są takie same. Poprawka dodaje sprawdzenie w kodzie walidacji, aby upewnić się, że zapisany nr_subbufs jest zgodny z oczekiwanym.
- CVE-2026-98056Wysokie
W jądrze Linux funkcja nvme_scan_ns_list() usuwa nieaktualne przestrzenie nazw w każdej luce raportowanej listy NSID po jednym NSID na raz, wywołując nvme_find_get_ns() w każdej iteracji. Ponieważ NSID są 32-bitowe, rzadka przestrzeń NSID może spowodować, że pojedyncza luka wykona miliardy iteracji bez niczego do usunięcia, prowadząc do soft lockup. Poprawka zmienia nvme_remove_invalid_namespaces() na nvme_remove_nsid_range() z otwartym zakresem (start, end) NSID, co ogranicza pracę do rzeczywiście obecnych przestrzeni nazw.
- CVE-2026-98055Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku ASoC Intel AVS funkcja snd_hdac_ext_bus_get_ml_capabilities() może zwrócić błąd, którego kod powrotu nie był sprawdzany w avs_pci_probe(). Dodatkowo w przypadku niepowodzenia dalszej części avs_pci_probe() lista hlink nie była czyszczona przed wyjściem z funkcji.
- CVE-2026-98054Średnie
W jądrze Linux w sterowniku ASoC Intel AVS funkcja strace_open() wywołuje try_module_get(), które przy powodzeniu zwiększa licznik referencji modułu. Jeśli kolejna operacja spowoduje niepowodzenie strace_open(), licznik referencji nie jest zmniejszany, co prowadzi do niezrównoważonego stanu.
- CVE-2026-98053Średnie
W jądrze Linux w sterowniku ASoC Intel AVS kod odwołuje się do wpisów w tablicy init_configs za pomocą indeksów z tablicy config_ids, które są ograniczone przez num_config_ids, a nie num_init_configs. Użycie identyfikatora większego lub równego num_init_configs prowadzi do dostępu poza zakresem tablicy w avs_path_module_send_init_configs().
- CVE-2026-98052Wysokie
W jądrze Linux w sterowniku sieciowym bcmasp funkcja bcmasp_xmit() ustawiała txcb->last = true tylko dla ostatniego fragmentu SKB, pozostawiając pole niezmienione dla wcześniejszych fragmentów. Jeśli slot deskryptora został ponownie użyty z nieaktualną wartością true z poprzedniego SKB, bcmasp_tx_reclaim() mogło przedwcześnie zwolnić sk_buff, podczas gdy jego pozostałe fragmenty były jeszcze w locie.
- CVE-2026-98051Średnie
W jądrze Linux w sterowniku sieciowym bcmasp funkcja tx_spb_ring_full() inicjalizowała next_index od intf->tx_spb_index w każdej iteracji pętli, przez co incr_ring() zawsze dawał ten sam wynik i tylko jeden slot był testowany. Powodowało to nieprawidłowe sprawdzanie dostępności kolejnych slotów deskryptorów przed transmisją.
- CVE-2026-98049Średnie
W jądrze Linux w podsystemie BPF funkcja is_cmpxchg_insn() dopasowuje tylko BPF_MODE == BPF_ATOMIC, przez co arena cmpxchg nie otrzymuje wymaganego rozszerzenia zerowego dla 32-bitowej operacji. Może to prowadzić do nieprawidłowych wartości w rejestrze docelowym na architekturach wymagających jawnego rozszerzenia zerowego.
- CVE-2026-98048Niskie ryzyko· EPSS 5%
W jądrze Linux w podsystemie BPF funkcja mark_fastcall_pattern_for_call() musi zapewnić, że dopasowana sekwencja instrukcji "spill; call; fill" nie jest przerwana przez skok. W przeciwnym razie przepisanie zastosowane przez bpf_remove_fastcall_spills_fills() jest niepoprawne. Poprawka rejestruje instrukcje będące celami skoków w insn_aux_data[*].jump_target i używa tej flagi do zatrzymania rozwijania wzorca.
- CVE-2026-98047Niskie ryzyko· EPSS 7%
W jądrze Linux w podsystemie BPF funkcja in_rbtree_lock_required_cb() sprawdza tylko najgłębszą ramkę weryfikatora, przez co ograniczenia callbacku rbtree znikają w zagnieżdżonej ramce wywołania statycznego podprogramu. Podprogram może odblokować drzewo, usunąć i zwolnić porównywany węzeł, a następnie ponownie zablokować, co prowadzi do wstawienia zwolnionej pamięci do drzewa.
- CVE-2026-98046Niskie ryzyko· EPSS 6%
W jądrze Linux w podsystemie BPF funkcja bpf_btf_find_by_name_kind() zwraca nowy deskryptor pliku obiektu BTF przez __btf_new_fd(), co prowadzi do anon_inode_getfd(), która może spać podczas alokacji lub rozszerzania tablicy deskryptorów. Prototyp helpera nie ustawia might_sleep, więc weryfikator zezwala na jego użycie w kontekstach nieuśpialnych, takich jak callbacki timerów BPF.
- CVE-2026-98045Niskie ryzyko· EPSS 6%
W jądrze Linux podatność w weryfikatorze BPF dotyczy helperów stosu, które mogą blokować na odczytach systemu plików (np. przy rozwiązywaniu build ID), ale nie były oznaczone jako uśpialne. Weryfikator mógł zezwolić na ich wywołanie z regionów nieuśpialnych, takich jak sekcje RCU czy z wyłączonym wywłaszczaniem.
- CVE-2026-98044Niskie ryzyko· EPSS 5%
W jądrze Linux weryfikator BPF błędnie obsługiwał przestarzałe instrukcje ładowania pakietów (BPF_LD_ABS/BPF_LD_IND) wywoływane z callbacków, co prowadziło do błędu weryfikatora i ostrzeżenia oraz błędu -EFAULT przy BPF_PROG_LOAD. Uprawniony ładowacz programów mógł wywołać ten problem.
- CVE-2026-98043Niskie ryzyko· EPSS 9%
W jądrze Linux weryfikator BPF błędnie wnioskował, że wskaźnik z nieograniczonym przesunięciem jest nie-NULL, opierając się tylko na typie. W wyniku tego program BPF mógł przejść weryfikację, a w czasie działania nastąpiło wyłuskanie wskaźnika NULL.
- CVE-2026-98042Niskie ryzyko· EPSS 8%
W jądrze Linux weryfikator BPF mógł przywrócić identyfikator skalara usunięty przez collect_linked_regs(), ponieważ kopie porównywanych rejestrów były wykonywane przed zebraniem powiązanych rejestrów. Mogło to prowadzić do niespójności zakresów i propagacji precyzji.
- CVE-2026-98041Wysokie
W jądrze Linux weryfikator BPF błędnie przewidywał wynik porównania wskaźnika z zerem w instrukcjach JMP32, nie odróżniając porównań BPF_JMP od BPF_JMP32. Prowadziło to do nieprawidłowego wnioskowania o zawsze wykonanym skoku.
- CVE-2026-98040Niskie ryzyko· EPSS 8%
W jądrze Linux weryfikator BPF nie oznaczał rejestru zerowego jako precyzyjnego przy sprawdzaniu NULL w formie porównania rejestrów. W rezultacie jedna ze ścieżek była przycinana, a program mógł wyłuskać wskaźnik o wartości zero w czasie działania.
- CVE-2026-98039Niskie ryzyko· EPSS 6%
W jądrze Linux weryfikator BPF nie wymagał flagi MEM_PERCPU dla zapisów do pól percpu kptr, akceptując zarówno zwykłe alokacje bpf_obj_new(), jak i wskaźniki jądra. Mogło to prowadzić do dowolnego odczytu/zapisu w jądrze lub nieprawidłowej relokacji adresów.
- CVE-2026-98038Niskie ryzyko· EPSS 9%
W jądrze Linux weryfikator BPF błędnie klasyfikował pożyczone referencje RCU kptr jako referencje właścicielskie, przez co nie wymagał sprawdzenia NULL. W czasie działania refcount_inc_not_zero() mogło zwrócić NULL, podczas gdy weryfikator traktował wynik jako nie-NULL.
- CVE-2026-98037Niskie ryzyko· EPSS 6%
W jądrze Linux weryfikator BPF uznawał wskaźniki PTR_UNTRUSTED z flagą MEM_ALLOC za żywe obiekty alokowane, mimo że ich okres życia nie jest już chroniony. Funkcja bpf_refcount_acquire() mogła następnie wyłuskać NULL lub nieaktualną pamięć.
- CVE-2026-98036Niskie ryzyko· EPSS 4%
W jądrze Linux funkcja rhtab_map_update_elem() ponownie inicjalizowała pola specjalne w recyklowanych elementach mapy, usuwając jedyny wskaźnik do timera. W rezultacie timer mógł zostać uruchomiony z kluczem i wartością wskazującymi na zwolnioną pamięć.
- CVE-2026-98035Niskie ryzyko· EPSS 4%
W jądrze Linux naprawiono podatność w podsystemie BPF dotyczącą map typu rhtab. Funkcje rhtab_map_update_existing() i rhtab_delete_elem() wywoływały bpf_obj_free_fields(), co mogło być niebezpieczne w kontekście NMI. Zmiana polega na użyciu bpf_obj_cancel_fields() do anulowania tylko pól asynchronicznych, a zwalnianie referencji kptr pozostawiono destruktorowi alokacji.
- CVE-2026-98034Niskie ryzyko· EPSS 5%
W jądrze Linux naprawiono podatność w weryfikatorze BPF dotyczącą zapisów do pól kptr. Funkcja check_map_kptr_access() zezwalała na zapis skalara do niezaufanego pola kptr tylko gdy rejestr zawierał zero, ale nie oznaczała tego rejestru jako precyzyjnego. Mogło to pozwolić na ominięcie weryfikatora i zapisanie atakujących danych do pola kptr.
- CVE-2026-98033Niskie ryzyko· EPSS 5%
W jądrze Linux naprawiono podatność w podsystemie BPF dotyczącą tożsamości map wewnętrznych w ramkach wywołań zwrotnych. Konstruktory ramek wywołań zwrotnych czyściły pole map_uid, co uniemożliwiało rozróżnienie map wewnętrznych współdzielących szablon inner_map_meta. Mogło to prowadzić do użycia zwolnionej mapy po zwolnieniu pamięci.
- CVE-2026-98032Niskie ryzyko· EPSS 5%
W jądrze Linux naprawiono podatność w podsystemie tracingu dotyczącą wyścigów przy zmianie rozmiaru podbuforów. Współbieżne zmiany rozmiaru podbuforów mogły powodować awarie czytników trace_pipe_raw lub wyciek niezainicjowanej pamięci do przestrzeni użytkownika. Poprawka modyfikuje ring_buffer_alloc_read_page() i dodaje nową funkcję ring_buffer_read_page_size().
- CVE-2026-98031Niskie ryzyko· EPSS 6%
W jądrze Linux naprawiono podatność w podsystemie nexthop dotyczącą niezinicjalizowanej struktury extack w funkcji remove_nh_grp_entry(). Funkcja ta drukuje komunikat extack, gdy odbiorca nie zastąpi zredukowanej grupy nexthop, ale extack nie jest inicjalizowany, co prowadzi do dereferencji niezainicjowanego wskaźnika stosu.
- CVE-2026-98030Wysokie
W jądrze Linux naprawiono podatność w sterowniku DSA bcm_sf2 dotyczącą braku ograniczenia zrzutu reguł CFP rozmiarem bufora wywołującego. Funkcja bcm_sf2_cfp_rule_get_all() przechodzi przez całą bitmapę cfp.unique bez uwzględnienia nfc->rule_cnt, co pozwala na wyjście poza alokację. Luka jest dostępna bez uprawnień CAP_NET_ADMIN.
- CVE-2026-98029Wysokie
W jądrze Linux sterownik nfp (ethernet) zrzuca reguły ntuple do bufora bez sprawdzania rozmiaru bufora podanego przez wywołującego. Funkcja nfp_net_get_fs_loc() zapisuje wszystkie wpisy nn->fs.list do rule_locs[] ignorując cmd->rule_cnt, co pozwala użytkownikowi bez uprawnień CAP_NET_ADMIN wywołać ETHTOOL_GRXCLSRLALL z mniejszą liczbą slotów niż liczba reguł i wyjść poza alokację; rule_cnt równy 0 pozostawia wskaźnik NULL i powoduje dereferencję.
- CVE-2026-98028Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik nfp (ethernet) przy nieudanym przeprogramowaniu reguły nie usuwa jej z listy. Funkcja nfp_net_fs_add() usuwa starą regułę ze sprzętu i zmniejsza nn->fs.count, ale gdy nfp_net_fs_add_hw() zawiedzie, stary wpis pozostaje na nn->fs.list, przez co lista jest dłuższa niż licznik i nadal reklamuje regułę, której wpis sprzętowy został już usunięty.
- CVE-2026-98027Wysokie
W jądrze Linux sterownik DSA mv88e6xxx zrzuca reguły polityki do bufora bez sprawdzania jego rozmiaru. Funkcja mv88e6xxx_get_rxnfc() używa rxnfc->rule_cnt jako indeksu zapisu, nadpisując wartość wejściową oznaczającą liczbę dostępnych slotów, co pozwala użytkownikowi bez CAP_NET_ADMIN wywołać ETHTOOL_GRXCLSRLALL z mniejszą liczbą slotów niż liczba reguł i wyjść poza alokację; rule_cnt równy 0 pozostawia wskaźnik NULL i powoduje dereferencję.
- CVE-2026-98026Niskie ryzyko· EPSS 6%
W jądrze Linux mostek (bridge) multicast nieprawidłowo konwertuje listę mglist na RCU. Funkcja br_multicast_del_port_group usuwa grupę portów bez użycia właściwego pomocnika RCU zachowującego wskaźnik next, a następnie natychmiast zwalnia grupę bez oczekiwania na okres karencji RCU; jedyny czytelnik mglist, br_multicast_list_adjacent(), był zawsze błędny, ponieważ mglist nigdy nie zostało poprawnie przekonwertowane na RCU.
- CVE-2026-98025Niskie ryzyko· EPSS 13%
W jądrze Linux w sterowniku cx82310_eth wykryto przepełnienie bufora na stercie (heap overflow). Gdy urządzenie wyśle URB rozpoczynający się od znacznika restartu 0xffff, sterownik pomija sprawdzenie MTU i kopiuje do 4094 bajtów danych do bufora o rozmiarze zaledwie 1516 bajtów, co prowadzi do uszkodzenia pamięci i przekazania zniekształconej ramki do stosu sieciowego.
- CVE-2026-98024Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik s390/ism zwalnia pamięć niewłaściwą funkcją po błędzie. Pole dmb->cpu_addr zostało przydzielone przez folio_alloc(), ale w ścieżce błędu funkcji ism_alloc_dmb() użyto kfree() zamiast folio_put(), co może uszkodzić alokator slab; dodatkowo po folio_put należy wyzerować dmb->cpu_addr, aby uniknąć przyszłego użycia po zwolnieniu.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

