Podatności Linux kernel
10 391 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-58942Wysokie
W funkcji do_fault_around pliku memory.c występuje możliwe użycie po zwolnieniu (use after free) spowodowane błędem logicznym w kodzie. Może to doprowadzić do lokalnej eskalacji uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58847Nieznane
W funkcji kvm_vfio_pviommu_attach w pliku vfio.c występuje możliwość podwójnego zwolnienia (double free) wynikająca z błędu logicznego w kodzie. Może to prowadzić do lokalnego podniesienia uprawnień bez konieczności posiadania dodatkowych uprawnień. Do wykorzystania nie jest wymagana interakcja użytkownika.
- CVE-2026-58829Wysokie
W funkcji fuse_backing_mmap pliku backing.c występuje możliwość uszkodzenia pamięci z powodu użycia po zwolnieniu (use after free). Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58828Wysokie
W wielu funkcjach pliku base.c występuje możliwość użycia po zwolnieniu (use after free) z powodu warunku wyścigu. Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58827Wysokie
W wielu funkcjach pliku dma-buf.c występuje możliwość użycia po zwolnieniu (use after free) z powodu warunku wyścigu. Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58826Wysokie
W funkcji ksys_unshare pliku fork.c występuje możliwość uszkodzenia pamięci z powodu użycia po zwolnieniu (use after free). Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58825Wysokie
W wielu funkcjach pliku fork.c występuje możliwość użycia po zwolnieniu (use after free) z powodu błędu logicznego w kodzie. Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-99242Nieznane
W jądrze Linux naprawiono wyścig w systemie plików NTFS między fallocate a odczytami przez mmap. Fallocate brał invalidate_lock tylko dla operacji punch hole, collapse range i insert range, a przy standardowej alokacji nowe klastry były mapowane przed wyzerowaniem, co pozwalało równoległym błędom stron mmap odczytać niezainicjalizowane dane z dysku.
- CVE-2026-99241Nieznane
W jądrze Linux naprawiono brak blokady w ntfs_filemap_page_mkwrite(), która wywoływała iomap_page_mkwrite() bez trzymania mapping->invalidate_lock. Równoległy truncate lub fallocate mógł w tym czasie unieważniać pagecache i przepisywać runlist, powodując wyścig z mapowaniem bloków i zabrudzaniem folio.
- CVE-2026-99240Nieznane
W jądrze Linux w podsystemie DAMON (mm/damon/core) występuje błąd dzielenia przez zero, gdy cel kwoty DAMOS (damos_quota_goal) ma wartość target_value równą zero. Poprawka przenosi obsługę tego przypadku do warstwy rdzeniowej, dodając walidację w funkcji damos_commit_quota_goal(), która teraz zwraca błąd przy zerowej wartości docelowej.
- CVE-2026-99239Wysokie
W jądrze Linux rozwiązano podatność w Bluetooth L2CAP polegającą na wyścigu TOCTOU, w którym l2cap_chan może zostać powiązany z l2cap_conn więcej niż raz. Naruszenie tego niezmiennika może prowadzić do niespójnego stanu kanału i potencjalnych problemów z pamięcią. Poprawka dodaje sprawdzenie niezmiennika w __l2cap_chan_add oraz blokadę l2cap_lock_chan w l2cap_sock_bind().
- CVE-2026-99238Wysokie
W jądrze Linux rozwiązano podatność w podsystemie tracing, gdzie trace_module_record() przechodzi po ftrace_trace_arrays z notyfikatora modułu bez blokady trace_types_lock. Równoległe usunięcie instancji (rmdir) usuwa ją z listy i zwalnia pod tą blokadą, więc załadowanie lub wyładowanie modułu może odwołać się do zwolnionego trace_array (use-after-free).
- CVE-2026-99237Wysokie
W jądrze Linux rozwiązano podatność w podsystemie tracing, gdzie update_last_data_if_empty() jest wywoływana z tracing_open() z O_TRUNC, tracing_read_pipe() i tracing_buffers_read() bez blokady trace_types_lock. Dwóch czytelników może jednocześnie przejść test LAST_BOOT i podwójnie zwolnić module_delta, a notyfikator modułu może aktualizować module_delta w trakcie jego zwalniania.
- CVE-2026-99236Wysokie
W jądrze Linux rozwiązano podatność w podsystemie tracing, gdzie niepełne wyrażenia filtrów zdarzeń (np. kończące się operatorem logicznym) powodowały niezdefiniowany stan operatora. Prowadziło to do odczytu poza granicami (prog[-1]) lub kopiowania słowa poza granicami do celu skoku, co można było wywołać przez PERF_EVENT_IOC_SET_FILTER na samonamierzającym punkcie śledzenia perf.
- CVE-2026-99235Wysokie
W jądrze Linux rozwiązano podatność use-after-free w podsystemie tracing/histogramy. create_field_var_hist() zapisywał wskaźnik do zgodnego histogramu (hist_data) zamiast do utworzonego histogramu; ponieważ find_compatible_hist() dopasowuje tylko klucze, użytkownik mógł usunąć ten histogram, podczas gdy cel nadal na niego wskazywał, co prowadziło do use-after-free w event_hist_trigger_free().
- CVE-2026-99234Nieznane
W jądrze Linux w podsystemie tracing występuje błąd, w którym nieudane polecenie hist tworzące histogram zmiennej pola pozostawia zarejestrowany trigger bez powiązanego wpisu w field_var_hists[]. W wyniku tego trigger pozostaje aktywny i zlicza dane, mimo że operacja zakończyła się błędem -EINVAL, co prowadzi do wycieku zasobów i niespójnego stanu.
- CVE-2026-99233Wysokie
W jądrze Linux rozwiązano podatność w tracing/histograms, gdzie find_synth_event() porównywał tylko nazwę bazową zdarzenia. Rejestracja lub usunięcie histogramu na niesyntetycznym zdarzeniu o nazwie bazowej zgodnej ze zdarzeniem syntetycznym błędnie modyfikowała licznik referencji se->ref, co mogło doprowadzić do zwolnienia zdarzenia syntetycznego, podczas gdy aktywna akcja histogramu nadal trzymała do niego wskaźnik (use-after-free).
- CVE-2026-99232Nieznane
W jądrze Linux naprawiono użycie __copy_from_user() zamiast copy_from_user() w syscall_copy_user_array() przy kopiowaniu bufora argumentów syscalli podlegających błędom stron (write, pwrite64 itp.). Pominięcie access_ok() pozwalało na przyjęcie adresu niebędącego adresem użytkownika.
- CVE-2026-99231Wysokie
W jądrze Linux w podsystemie io_uring (operacja waitid) występuje błąd use-after-free. Funkcja io_waitid_wait() czyści pole ->head zanim przejmie własność żądania przez zwiększenie licznika referencji, co pozwala innemu wątkowi zwolnić i ponownie użyć żądania, podczas gdy procedura obsługi wciąż je modyfikuje.
- CVE-2026-99230Nieznane
W jądrze Linux naprawiono pozostawianie wskaźników LIST_POISON w ->hash_node przez io_uring_cmd_del_cancelable(), które używa hlist_del(). Rekordy są recyklingowane bez reinicjalizacji, a nie każdy użytkownik ->hash_node inicjalizuje go przed użyciem, co prowadzi do zapisu przez LIST_POISON2 i błędu general protection fault.
- CVE-2026-99229Nieznane
W jądrze Linux naprawiono zapętlenie w io_cqring_wait_schedule(), gdy ustawiony jest bit IO_CHECK_CQ_OVERFLOW_BIT, a lista przepełnienia nie może zostać opróżniona. Zadanie wiruje w jądrze i nie można go zabić, m.in. przy IORING_SETUP_CQE_MIXED lub manipulacji wskaźnikiem CQ head przez aplikację.
- CVE-2026-99228Nieznane
W jądrze Linux naprawiono błąd w io_uring/io-wq, w którym sygnał kończący pracę mógł zostać utracony. Gdy wątek kończy działanie, jego io-wq jest zamykane, a pracownicy są budzeni sygnałem, ale pracownik, który nie rozpoczął jeszcze pracy, mógł ten sygnał utracić. Prowadziło to do zawieszenia wątku w do_exit() np. przy IORING_OP_OPENAT na FIFO bez pisarza z IOSQE_ASYNC.
- CVE-2026-99227Wysokie
W jądrze Linux w mechanizmie io_uring/waitid występuje błąd licznika referencji, w którym powtarzane nieudane próby anulowania żądania mogą spowodować przepełnienie 31-bitowego pola referencji do zera. Późniejsze anulowanie może wtedy przejąć własność i zakończyć żądanie po raz drugi.
- CVE-2026-99226Nieznane
W jądrze Linux naprawiono błąd use-after-free w funkcji find_keyring_by_name() podczas wyszukiwania nazwanego keyringu. Funkcja czytała keyring->user->uid pod keyring_name_lock, który nie chroni obiektu key_user, więc równoległy KEYCTL_CHOWN mógł zwolnić stary obiekt key_user między odczytem wskaźnika a odczytem UID. Poprawka polega na użyciu inline pola keyring->uid zamiast dereferencji konta właściciela.
- CVE-2026-99225Nieznane
W jądrze Linux występuje luka w funkcji search_process_keyrings_rcu(), która sprawdza ładunek autoryzacji (authorization payload) i zapisane poświadczenia. W wyniku wyścigu (race condition) między wątkiem potomnym helpera request-key a wątkiem żądającym, wskaźnik ładunku może zostać wyzerowany przez request_key_auth_revoke(), co prowadzi do dereferencji NULL i oops jądra.
- CVE-2026-99224Wysokie
W jądrze Linux naprawiono błąd w keyctl_describe_key(), gdzie nazwa typu klucza mogła zostać zwolniona przez wyładowanie modułu (np. AF_RXRPC) w trakcie formatowania opisu klucza. Prowadziło to do użycia zwolnionej pamięci (use-after-free) i błędu page fault w funkcji string(). Poprawka polega na utrzymaniu blokady key->sem przez cały czas wykonywania kasprintf().
- CVE-2026-99223Nieznane
W jądrze Linux indeksy keyringów zawierały adresy jądra (hash wskaźników typu i domeny), co pozwalało nieuprzywilejowanemu użytkownikowi przewidzieć kolejność kluczy i odzyskać adres obrazu jądra, obchodząc KASLR. Poprawka usuwa adresy z całego indeksu, zastępując je leniwie przydzielanymi 64-bitowymi ID hashowanymi kluczem SipHash.
- CVE-2026-99222Nieznane
W jądrze Linux występuje luka use-after-free w obsłudze kluczy. Funkcja keyctl_read_key() sprawdza metodę read typu klucza bez trzymania semafora key->sem, przez co klucz RxRPC może zostać odczytany w trakcie wyładowywania modułu AF_RXRPC, gdy pamięć modułu została już zwolniona.
- CVE-2026-99221Nieznane
W jądrze Linux funkcja trusted_tpm_unseal() kontynuowała działanie po niepowodzeniu odpieczętowania TPM i wywoływała pcrlock(); jeśli pcrlock() się powiodło, jego wynik nadpisywał błąd, przez co instancjonowanie klucza kończyło się sukcesem mimo błędu.
- CVE-2026-99220Nieznane
W jądrze Linux parser PKCS#8 pozostawia pusty slot asym_key_ids, a key_or_keyring_common() bezwarunkowo go dereferencjonuje przy restrykcji key_or_keyring. Nieuprzywilejowany wywołujący może wywołać NULL pointer dereference przez KEYCTL_RESTRICT_KEYRING i add_key(), powodując panikę jądra.
- CVE-2026-99219Nieznane
W jądrze Linux funkcja print_rec() pozostawia zmienne 'modname' i 'offset' niezainicjalizowane, a kallsyms_lookup() ustawia je tylko przy sukcesie. Gdy wyszukiwanie zawiedzie (np. podczas ładowania lub wyładowywania modułu), 'modname' zawiera śmieciową wartość, przechodzi sprawdzenie 'if (modname)' i jest dereferencjonowana przez seq_printf(), powodując błąd general protection fault.
- CVE-2026-99218Wysokie
W jądrze Linux funkcja coredump_finish() zwalnia zaparkowane wątki bez trzymania referencji na zadaniu i poza sekcją RCU. Jeśli klient coredump zostanie wywłaszczony między zapisem a wake_up_process(), wątek może zostać zwolniony, a try_to_wake_up() odwoła się do zwolnionej pamięci.
- CVE-2026-99217Nieznane
W jądrze Linux kolejność sprzątania w copy_process() powodowała zakleszczenie: fork kończący się niepowodzeniem, gdy inny wątek zamknął fd linku bpf, blokował się na własnej stronie odczytu scx_fork_rwsem, blokując wszystkie forki w systemie. Poprawka zwalnia pliki dziecka po sched_cancel_fork() i czyści p->files z góry.
- CVE-2026-99215Nieznane
W jądrze Linux w podsystemie power supply występuje luka use-after-free. Jeśli zasilacz zostanie wyrejestrowany (power_supply_unregister) w trakcie wykonywania callbacku external_power_changed(), sterownik może zwolnić dane, do których callback nadal próbuje uzyskać dostęp, co prowadzi do awarii jądra (NULL pointer dereference).
- CVE-2026-99210Nieznane
W sterowniku accel/rocket jądra Linux funkcja rocket_probe() zapisuje wynik rocket_device_init() w globalnym wskaźniku rdev przed sprawdzeniem, czy jest to wskaźnik błędu. Przy niepowodzeniu rdev pozostaje jako ERR_PTR, a późniejsza próba może pominąć inicjalizację i wyłuskać wskaźnik błędu przy odczycie rdev->num_cores.
- CVE-2026-99209Nieznane
W sterowniku drm/xe jądra Linux funkcja xe_evict_flags() odczytuje tbo->resource->mem_type, ale bufor BO może trafić do eksmisji bez ttm.resource, np. importowany dma-buf, którego zasób zwolniono podczas rozbierania. Prowadzi to do wyłuskania wskaźnika NULL i błędu jądra.
- CVE-2026-99208Nieznane
W sterowniku drm/xe/oa jądra Linux bufory BO typu ttm_bo_type_kernel nie są gwarantowanie zerowane przy alokacji i mogą zawierać dane z wcześniej zwolnionych stron. Ponieważ bufor OA jest mapowalny przez przestrzeń użytkownika, może to ujawnić nieaktualną zawartość pamięci jądra.
- CVE-2026-99207Nieznane
W jądrze Linux w podsystemie scsi: target funkcja target_do_delayed_work() pobierała blokadę delayed_cmd_lock za pomocą zwykłego spin_lock(), nie wyłączając przerwań, podczas gdy wszystkie inne miejsca używają spin_lock_irqsave(). Odkąd komendy mogą być kończone w kontekście przerwania (complete_type=1 z direct_compl_supp), może to prowadzić do zakleszczenia, gdy ukończenie komendy trafi na ten sam CPU, na którym work item trzyma blokadę.
- CVE-2026-99205Nieznane
W jądrze Linux w funkcji sched_change_end() występuje wyścig z __sched_setscheduler() dla zadań zakolejkowanych, ale nieuruchomionych. Po zmianie klasy zadania (np. z SCHED_OTHER na SCHED_RR) wskaźnik rq->next_class nie jest aktualizowany, a wskaźnik potrzeby przeplanowania nie jest ustawiany, co prowadzi do bezczynności CPU mimo obecności gotowego do uruchomienia zadania.
- CVE-2026-99200Nieznane
W jądrze Linux sterownik sieciowy hisi_femac (net: hisilicon) przypisuje netdev_ops dopiero po podłączeniu PHY. Gdy włączone jest CONFIG_NET_SHAPER, phy_attach_direct() odczytuje niezainicjowane netdev_ops, co powoduje panikę jądra z powodu dereferencji NULL.
- CVE-2026-99199Nieznane
W jądrze Linux sterownik hip04_eth (net: hisilicon) wywołuje of_phy_connect() przed przypisaniem ndev->netdev_ops. Przy włączonym CONFIG_NET_SHAPER phy_attach_direct() odczytuje niezainicjowane netdev_ops, powodując panikę jądra z dereferencją NULL.
- CVE-2026-99198Nieznane
W jądrze Linux sterownik owl_emac (net: ethernet: actions) wywołuje owl_emac_phy_init(), która podłącza PHY, przed przypisaniem netdev->netdev_ops. Przy włączonym CONFIG_NET_SHAPER phy_attach_direct() odczytuje niezainicjowane netdev_ops, powodując panikę jądra z dereferencją NULL.
- CVE-2026-99197Nieznane
W jądrze Linux sterownik mv643xx_eth podłącza PHY przed przypisaniem dev->netdev_ops. Przy włączonym CONFIG_NET_SHAPER phy_attach_direct() odczytuje niezainicjowane netdev_ops, powodując panikę jądra z dereferencją NULL.
- CVE-2026-99196Nieznane
W jądrze Linux sterownik sieciowy au1000 wywołuje au1000_mii_probe() i podłącza PHY przed przypisaniem dev->netdev_ops. Od czasu wprowadzenia netdev_need_ops_lock() funkcja phy_attach_direct() odczytuje dev->netdev_ops, co przy włączonym CONFIG_NET_SHAPER powoduje dereferencję NULL i awarię podczas probe.
- CVE-2026-99195Nieznane
W jądrze Linux sterownik ethoc wywołuje ethoc_mdio_probe() i podłącza PHY przed przypisaniem netdev->netdev_ops. Od czasu wprowadzenia netdev_need_ops_lock() funkcja phy_attach_direct() odczytuje netdev->netdev_ops, co przy włączonym CONFIG_NET_SHAPER powoduje dereferencję NULL i awarię podczas probe.
- CVE-2026-99194Nieznane
W jądrze Linux sterownik aeroflex greth wywołuje greth_mdio_init() i podłącza PHY przed przypisaniem dev->netdev_ops. Od czasu wprowadzenia netdev_need_ops_lock() funkcja phy_attach_direct() odczytuje dev->netdev_ops, co przy włączonym CONFIG_NET_SHAPER powoduje dereferencję NULL i awarię podczas probe.
- CVE-2026-99193Nieznane
W jądrze Linux sterownik ti icssm-prueth wywołuje of_phy_get_and_connect() przed przypisaniem ndev->netdev_ops. Od czasu wprowadzenia netdev_need_ops_lock() funkcja phy_attach_direct() odczytuje dev->netdev_ops, co przy włączonym CONFIG_NET_SHAPER powoduje dereferencję NULL i awarię podczas probe.
- CVE-2026-99189Nieznane
W jądrze Linux sterownik GPIO mxc instaluje dołączony handler IRQ (mxc_update_irq_chained_handler()) przed skonfigurowaniem domeny IRQ, układu IRQ i wpisu listy portów. Przerwanie w tym oknie powoduje dereferencję NULL lub dostęp do niekompletnej listy, a błędy późniejszych kroków probe pozostawiają wiszący handler wskazujący na zwolnioną pamięć.
- CVE-2026-99188Nieznane
W jądrze Linux sterownik stmmac dwmac1000 od czasu usunięcia obsługi przerwań SGMII/RGMII/SMII nie odczytuje rejestru GMAC_RGSMIIIS, przez co status RGMII pozostaje oczekujący za GMAC_INT_MASK. Podczas stmmac_resume() reset MAC zeruje maskę i oczekujący status zalewa linię przerwań, powodując soft lockup, reset watchdoga lub zawieszenie.
- CVE-2026-99186Nieznane
W jądrze Linux w funkcji get_seg_reg_override_idx() doszło do przesłonięcia zmiennej indeksu pętli przez zmienną lokalną o tej samej nazwie. W efekcie nadpisania prefiksów segmentów FS/GS są ignorowane, a prefiks CS powoduje nieskończoną pętlę w jądrze podczas emulacji UMIP, co pozwala dowolnemu użytkownikowi zawiesić CPU aż do restartu systemu.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

