Podatności Linux kernel
7561 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- 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-98055Nieznane
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-98054Nieznane
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-98053Nieznane
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-98051Nieznane
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-98049Nieznane
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-98048Nieznane
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-98047Nieznane
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-98046Nieznane
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-98045Nieznane
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-98044Nieznane
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-98043Nieznane
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-98042Nieznane
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-98040Nieznane
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-98039Nieznane
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-98038Nieznane
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-98037Nieznane
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-98036Nieznane
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-98035Nieznane
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-98034Nieznane
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-98033Nieznane
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-98032Nieznane
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-98031Nieznane
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-98028Nieznane
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-98026Nieznane
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-98025Nieznane
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-98024Nieznane
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.
- CVE-2026-98023Wysokie
W jądrze Linux wykryto podatność w sterowniku VXLAN, która pozwala na konfigurację dynamicznych wpisów FDB odwołujących się do identyfikatora nexthop. Taka konfiguracja jest nieprawidłowa i może prowadzić do uszkodzenia listy powiązanej, wyścigu oraz użycia po zwolnieniu (use-after-free). Problem został naprawiony poprzez odrzucanie takich wpisów podczas tworzenia i aktualizacji.
- CVE-2026-98022Nieznane
W jądrze Linux nieograniczona wartość tx_queue_len pozwalała nieuprzywilejowanemu użytkownikowi (poprzez unshare -Urn) ustawić ogromną wartość i wyczerpać pamięć globalną alokacjami pierścieni buforów w podsystemach pfifo_fast, tun i tap. Podatność została naprawiona przez ograniczenie tx_queue_len do S16_MAX (32767) w funkcji netif_change_tx_queue_len(), co odrzuca zbyt duże wartości w momencie ich ustawiania.
- CVE-2026-98021Nieznane
W jądrze Linux wykryto podatność w mechanizmie tworzenia i modyfikacji interfejsów sieciowych. Atrybut IFLA_TXQLEN (txqueuelen) nie był poprawnie ograniczany do wartości S16_MAX podczas parsowania atrybutów netlink, co pozwalało na ustawienie nadmiernie dużej kolejki transmisyjnej. Prowadziło to do nadmiernych alokacji pamięci w modułach pfifo_fast, tun i tap, co mogło być wykorzystane przez nieuprzywilejowanego użytkownika w przestrzeni nazw.
- CVE-2026-98020Nieznane
W jądrze Linux sterownik pds_core ma wyścig dostępu do cmd_regs podczas odmapowywania BAR przy resecie. Funkcje pdsc_reset_prepare() i ścieżka błędu pdsc_map_bars() w pdsc_reset_done() czyszczą i odmapowują cmd_regs bez devcmd_lock, a pętla pobierania w pdsc_legacy_firmware_update() używa cmd_regs po zwolnieniu i ponownym zajęciu blokady bez ponownego sprawdzenia; równoległy FLR z devlink flash może odmapować cmd_regs w trakcie trwającego devcmd, powodując dereferencję NULL lub zapis do niezamapowanego MMIO.
- CVE-2026-98019Nieznane
W jądrze Linux weryfikator BPF nie oznaczał rejestru skalarnego jako 'precise' w dwóch przypadkach: gdy argument funkcji pomocniczej jest NULL (check_func_arg) oraz gdy drugi parametr bpf_get_local_storage() jest zerem (check_helper_call). Powodowało to, że punkt kontrolny utworzony na takiej ścieżce mógł zostać przycięty względem dowolnej wartości skalarnej, co prowadzi do nieprawidłowej weryfikacji programów BPF.
- CVE-2026-98018Nieznane
W jądrze Linux funkcja mctp_i3c_probe() zwalniała blokadę busdevs_lock po znalezieniu pasującej magistrali, co pozwalało równoległemu zdarzeniu I3C_NOTIFY_BUS_REMOVE na wyrejestrowanie i zwolnienie netdev magistrali przed przekazaniem danych do mctp_i3c_add_device(). Prowadziło to do użycia zwolnionej pamięci (use-after-free) poprzez wskaźnik mbus.
- CVE-2026-98017Wysokie
W jądrze Linux żądanie RTM_NEWQDISC mogło spowodować, że clsact powiązał współdzielony blok ingress podczas ->init(), publikując mini_Qdisc dla czytających bez blokad. Jeśli to samo żądanie miało nieprawidłowy TCA_RATE, konfiguracja estymatora kończyła się niepowodzeniem po ->init(), a ścieżka wycofania zwalniała qdisc synchronicznie, podczas gdy tc_run() mógł wciąż go używać — prowadząc do use-after-free.
- CVE-2026-98016Nieznane
W jądrze Linux w sterowniku net/mlx5e funkcja sample_restore_put() mogła ponownie odczytać restore->count po zwolnieniu restore_lock podczas równoległego demontażu reguł TC sample współdzielących ten sam kontekst restore. W tym momencie inny wątek mógł już zakończyć czyszczenie i zwolnić obiekt restore, co prowadziło do use-after-free.
- CVE-2026-98015Nieznane
W jądrze Linux w funkcji mlx5_eswitch_termtbl_put() sprawdzenie zerowego licznika odwołań odczytywało tt->ref_count po zwolnieniu termtbl_mutex. Dwóch równoległych wywołujących na tym samym mlx5_termtbl_handle ścigało się: jeden dekrementował ref_count do zera, usuwał wpis z hash i wywoływał kfree(tt), podczas gdy drugi już zwolnił mutex i miał ocenić if (!tt->ref_count), co prowadziło do use-after-free.
- CVE-2026-98013Nieznane
W jądrze Linux funkcja fq_pie_change() akceptowała dowolną wartość quantum z przestrzeni użytkownika, w tym 1. Przy spreparowanej tabeli rozmiarów qdisc_pkt_len osiągał ~2 GiB, więc quantum=1 powodowało, że pętla uzupełniania deficytu wykonywała się ~2^31 razy pod blokadą qdisc, co prowadziło do soft lockup i odmowy usługi.
- CVE-2026-98012Nieznane
W jądrze Linux funkcja sfq_change() akceptowała dowolną nieujemną wartość quantum (odrzucała tylko (int)ctl->quantum < 0). Przy spreparowanej tabeli rozmiarów qdisc_pkt_len osiągał ~2 GiB, więc quantum=1 powodowało, że pętla uzupełniania deficytu wykonywała się ~2^31 razy pod blokadą qdisc, co prowadziło do soft lockup i odmowy usługi.
- CVE-2026-98011Nieznane
W jądrze Linux funkcja hhf_change() akceptowała dowolną wartość quantum z przestrzeni użytkownika, w tym 1. Przy spreparowanej tabeli rozmiarów qdisc_pkt_len osiągał ~2 GiB, więc quantum=1 powodowało, że pętla uzupełniania deficytu wykonywała się ~2^31 razy pod blokadą qdisc, co prowadziło do soft lockup i odmowy usługi.
- CVE-2026-98010Nieznane
W jądrze Linux funkcja drr_change_class() odrzucała jawne quantum==0, ale w przeciwnym razie używała psched_mtu() bez dolnego ograniczenia. Przy spreparowanej tabeli rozmiarów qdisc_pkt_len osiągał ~2 GiB, więc quantum=1 (lub zerowe psched_mtu na urządzeniu bez nagłówka) powodowało, że pętla uzupełniania deficytu wykonywała się pod blokadą qdisc, prowadząc do soft lockup i odmowy usługi.
- CVE-2026-98009Nieznane
W jądrze Linux w schedulerze sieciowym ets brakowało dolnego ograniczenia wartości quantum. Przy spreparowanej tablicy rozmiarów qdisc_pkt_len może osiągnąć ~2 GiB, a zerowe psched_mtu na urządzeniu bez nagłówka powoduje zapętlenie pętli uzupełniania deficytu pod blokadą qdisc. Poprawka przenosi ograniczenie do funkcji ets_quantum_parse(), tak aby jawnie skonfigurowane quantum było ograniczane do zakresu [256, 1<<20].
- CVE-2026-98008Nieznane
W jądrze Linux w sterowniku macb, gdy drzewo urządzeń opisuje fixed-link bez węzła "mdio", funkcja macb_mii_init() kończy się wcześnie bez alokacji szyny MDIO, pozostawiając bp->mii_bus jako NULL. Dwie ścieżki sprzątania (odłączanie sterownika i ścieżka błędu sondowania) wywołują mdiobus_unregister()/mdiobus_free() bez sprawdzenia NULL, co powoduje oops. Poprawka dodaje zabezpieczenia przed NULL w obu miejscach.
- CVE-2026-98007Nieznane
W jądrze Linux w podsystemie BPF funkcja bpf_loop() deklaruje argument nr_loops jako ARG_ANYTHING, co pozwala uprzywilejowanym programom przekazać wartość wskaźnikową. Od commita bb124da69c47 verifier oznacza R1 jako precise i odczytuje jego górną granicę, a precision backtracking akceptuje tylko rejestry skalarne, co wywołuje ostrzeżenie "backtracking misuse" i panikę przy panic_on_warn. Poprawka wprowadza ARG_SCALAR i używa go dla nr_loops.
- CVE-2026-98005Nieznane
W jądrze Linux w systemie plików erofs klucze inode_share były kodowane jako fingerprint || domain_id bez separatora, co mogło powodować błędne parsowanie fingerprintu jako części domain_id. Poprawka zmienia kodowanie na domain_id || '\0' || fingerprint, dzięki czemu indeksy kluczy w pamięci są jednoznaczne.
- CVE-2026-98004Nieznane
W jądrze Linux w sterowniku iommu/riscv nie zsynchronizowano publikowania kolejki poleceń, co mogło prowadzić do wyścigu między stanem producenta a aktualizacją ogona sprzętowego. Poprawka serializuje publikowanie, aby stan producenta oprogramowania był aktualizowany dopiero po zapisaniu polecenia i aktualizacji ogona sprzętowego, oraz czeka na konsumpcję sprzętową poza blokadą kolejki, gdy kolejka jest pełna.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

