Podatności Linux kernel
10 419 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-92489Krytyczne
W jądrze Linux funkcja xfrm_dev_direct_output() zwalnia skb, gdy local_out() zwróci wartość inną niż 1, mimo że skb został już skonsumowany lub przekazany. Prowadzi to do podwójnego zwolnienia skb, gdy netfilter odrzuci pakiet.
- CVE-2026-90413Krytyczne
W jądrze Linux wykryto podatność w module IB/isert (iSER), która pozwala niezalogowanemu inicjatorowi na zadeklarowanie w pakiecie login PDU większej ilości danych, niż faktycznie wysłano. Prowadzi to do odczytu poza przydzielonym buforem (slab-out-of-bounds) przed procesem uwierzytelnienia, co może skutkować wyciekiem informacji lub awarią systemu.
- CVE-2026-90235Krytyczne
W jądrze Linux w podsystemie sunrpc, funkcje xprtsock używają zwykłych operacji zapisu i odczytu dla współdzielonych wskaźników callbacków sk_data_ready i sk_write_space. Może to prowadzić do sytuacji, w której inny procesor używa nieaktualnego wskaźnika po przywróceniu oryginalnych callbacków. Poprawka dodaje READ_ONCE/WRITE_ONCE dla tych operacji.
- CVE-2026-90230Krytyczne
W podsystemie nvmet jądra Linux funkcja nvmet_auth_negotiate() odczytuje dane poza zaalokowanym buforem (heap out-of-bounds read), ponieważ nie waliduje długości transferu (tl) ani wartości halen/dhlen przekazanych przez hosta. Złośliwy lub niezgodny host może podać zbyt małe tl lub zbyt duże halen/dhlen (do 255), powodując odczyt poza buforem. Poprawka przekazuje tl do funkcji i odrzuca nieprawidłowe wartości.
- CVE-2026-90173Krytyczne
W jądrze Linux w module smb (smbdirect) kolejki ukończeń (completion queues) tworzone przez ib_alloc_cq_any() były zwalniane za pomocą ib_destroy_cq(), co nie anulowało wcześniej zakolejkowanej pracy ib_cq_poll_work(). Późno zgłoszone ukończenie (np. błąd RNR z Soft-RoCE/rxe) powodowało ponowne zakolejkowanie pracy na już zwolnionej kolejce i użycie zwolnionej pamięci (use-after-free).
- CVE-2026-90110Krytyczne
W jądrze Linux występuje podatność w systemie ograniczania szybkości inetpeer, który przechowuje wpisy w drzewie czerwono-czarnym kluczowanym deterministycznie na podstawie adresu IP. Atakujący z zewnątrz może przewidzieć strukturę drzewa i wymuszać usuwanie wybranych węzłów, co resetuje ich licznik ograniczania szybkości i pozwala obejść limity ICMP oraz wnioskować o otwartych portach UDP. Podatność naprawiono poprzez randomizację porównywania węzłów drzewa przy użyciu SipHash z tajnym kluczem.
- CVE-2026-90104Krytyczne
W jądrze Linux w implementacji NFSv4.1 występuje błąd polegający na niezerowaniu list referring call przed dekodowaniem. Funkcja decode_cb_sequence_args() alokuje csa_rclists przez kmalloc_objs(), pozostawiając każdą referring_call_list niezainicjalizowaną, a decode_rc_list() przypisuje rcl_refcalls tylko gdy rcl_nrefcalls jest niezerowe. Prawidłowa lista z zerem referring calls pozostawia wskaźnik niezainicjalizowany, a nfs4_callback_sequence() przekazuje później nieaktualną zawartość slab do kfree().
- CVE-2026-90049Krytyczne
W jądrze Linux naprawiono podatność w funkcji skb_zerocopy(), która nieprawidłowo wywoływała skb_tx_error() na źródłowym skb podczas kopiowania fragów. To powodowało zakończenie uarg zerocopy i wyczyszczenie flagi SKBFL_SHARED_FRAG na skb, który nadal był używany przez stos sieciowy. W szczególności na ścieżce OVS_ACTION_ATTR_USERSPACE skb nie był zwalniany po błędzie, co mogło prowadzić do dekryptowania danych ESP w miejscu, gdzie skb nie posiadał prywatnie fragów, co mogło powodować uszkodzenie danych lub inne problemy.
- CVE-2026-90042Krytyczne
W jądrze Linux wykryto podatność w systemie plików Ceph, gdzie funkcja ceph_fname_to_usr() przekazywała bufory z regionu vmalloc() do API kryptograficznego fscrypt, które wymaga buforów w liniowym obszarze pamięci. Może to powodować błędy (oops) systemu, szczególnie na platformach innych niż x86. Poprawka dodaje obsługę buforów vmalloc() poprzez użycie tymczasowego bufora pośredniego.
- CVE-2026-90038Krytyczne
W jądrze Linux funkcja nfsd4_revoke_export_states() zwalnia blokadę nn->client_lock, ale trzymany referencja stateid nie utrzymuje przy życiu klienta. Równoległe zakończenie klienta może zwolnić go, podczas gdy revoke_one_stid() nadal go używa, powodując use-after-free.
- CVE-2026-90037Krytyczne
W jądrze Linux wpis nfs4_openowner pozostawiony na nn->close_lru trzyma tylko surowy wskaźnik do nfs4_client. Gdy laundromat zwalnia wpisy, zwalnia blokadę client_lock i wywołuje nfs4_put_stid(), równoległe force_expire_client() może zwolnić klienta, powodując użycie zwolnionej pamięci.
- CVE-2026-90036Krytyczne
W jądrze Linux właściciel blokady pozostawiony na nn->blocked_locks_lru trzyma tylko surowy wskaźnik do nfs4_client. Gdy laundromat zwalnia taką blokadę, końcowe nfs4_put_stateowner() sięga po cl_lock klienta, którego równoległe force_expire_client() mogło już zwolnić, powodując use-after-free.
- CVE-2026-90012Krytyczne
W jądrze Linux w funkcji __spi_map_msg() występuje błąd w zarządzaniu własnością mapowań DMA przy częściowym niepowodzeniu mapowania. Gdy mapowanie RX lub TX się nie powiedzie, flagi i wskaźniki urządzeń nie są prawidłowo czyszczone, co może prowadzić do ponownego odmapowania lub użycia NULL/starego wskaźnika urządzenia. Może to wywołać oops jądra.
- CVE-2026-90011Krytyczne
W jądrze Linux w podsystemie scsi target iscsi funkcja iscsi_target_check_login_request() nie rezerwuje bajtu terminatora NUL dla bufora logowania. Przy payload_length od 8189 do 8192 cały bufor 8192 bajtów jest wypełniany, a następnie przetwarzany jako string C, co prowadzi do odczytu poza buforem. Podatność jest osiągalna przez nieuwierzytelnionego inicjatora przy konfiguracji CHAP.
- CVE-2026-89990Krytyczne
W jądrze Linux funkcja ceph_mds_check_access() przegląda tablicę s_cap_auths bez trzymania mutexa. Równoczesne ponowne otwarcie sesji MDS może zwolnić tę tablicę w trakcie jej przeglądania, prowadząc do użycia po zwolnieniu (use-after-free).
- CVE-2026-89972Krytyczne
W jądrze Linux w funkcji nvme_alloc_ns() ścieżka błędu usuwa namespace z listy rodzeństwa za pomocą list_del_rcu(), ale nie czeka na zakończenie czytelników SRCU przed zwolnieniem struktury namespace. Współbieżny czytelnik w kodzie multipath może wciąż trzymać referencję do ns w momencie wywołania kfree(ns), co prowadzi do use-after-free.
- CVE-2026-89970Krytyczne
W jądrze Linux funkcja nvmet_auth_sq_free() anuluje zadanie auth_expired_work za pomocą cancel_delayed_work(), które nie czeka na zakończenie już uruchomionego callbacku. W wyniku tego podczas demontażu transportu kolejka zawierająca struct nvmet_sq może zostać zwolniona lub ponownie użyta, gdy nvmet_auth_expired_work() wciąż uzyskuje do niej dostęp.
- CVE-2026-89969Krytyczne
W jądrze Linux funkcja nvmet_tcp_try_recv_pdu() oblicza pozostałą długość ładunku PDU bez sprawdzenia, czy nie przekracza ona rozmiaru bufora queue->pdu. Gdy wynegocjowany jest digest nagłówka, zduplikowany pakiet ICReq powoduje zapis 4 bajtów poza końcem 128-bajtowego bufora, nadpisując pola queue->hdr_digest i queue->data_digest danymi kontrolowanymi przez atakującego.
- CVE-2026-89930Krytyczne
W jądrze Linux moduł KVM nVMX nie obsługuje lokalnych opróżnień TLB, gdy zagnieżdżony VM-Enter kończy się niepowodzeniem. Może to prowadzić do pominięcia opróżnienia TLB, jeśli L1 zmieni VPID dla L2, a następnie wykona nieudany VM-Enter, po którym nastąpi udany.
- CVE-2026-89918Krytyczne
W jądrze Linux w KVM dla arm64 występuje problem z nieprawidłowym obsługiwaniem końca przestrzeni adresowej podczas unieważniania TLB. Porównanie zakresów nie uwzględnia zawinięcia adresu, co może prowadzić do nieudanego unieważnienia TLB dla ostatniej strony/bloku w przestrzeni TTBR1.
- CVE-2026-89916Krytyczne
W jądrze Linux występuje problem w KVM na architekturze arm64 dotyczący unieważniania VNCR. Gdy jeden vcpu unieważnia TLB dla VNCR, a inny vcpu jednocześnie obsługuje błąd strony dla tej samej strony, może dojść do wstawienia nieaktualnego wpisu TLB. Rozwiązanie polega na rozszerzeniu invalidate_vncr_va() o aktualizację licznika mmu_invalidate_seq, co wymusza powtórzenie obsługi błędu.
- CVE-2026-89915Krytyczne
W jądrze Linux w KVM na arm64 usunięto globalny licznik mapowania VNCR, który służył do decydowania o konieczności unieważnienia TLB. Licznik ten miał wady: sprawdzanie go mogło prowadzić do pominięcia unieważnień TLB, a vcpu L1 unieważniający własny TLB nie unieważniał pseudowpisu VNCR. Ponieważ mechanizm nie zapewniał wymaganych gwarancji, został całkowicie usunięty.
- CVE-2026-89914Krytyczne
W jądrze Linux w KVM na arm64 funkcja decode_range_tlbi() używana do unieważniania TLB zakresowego dla S1 pomijała wymagane rozszerzenie znaku adresu wirtualnego. Może to prowadzić do nieprawidłowego obliczenia zakresu unieważnienia. Poprawka dodaje brakujące rozszerzenie znaku i zabezpiecza przed przepełnieniem bitów PA przy unieważnianiu S2.
- CVE-2026-89857Krytyczne
W jądrze Linux sterownik scsi qla2xxx w funkcji qla_nvme_ls_reject_iocb() brakuje blokady qpair podczas alokacji i wysyłania odrzucenia NVMe LS, co może prowadzić do współbieżnego dostępu i korupcji stanu pierścienia żądań, powodując duplikację lub utratę poleceń.
- CVE-2026-89847Krytyczne
W jądrze Linux w sterowniku scsi: qla2xxx funkcja qla2x00_async_iocb_timeout() mogła wywołać sp->done() dwukrotnie, gdy przerwanie odpowiedzi ukończyło ten sam uchwyt przed obsługą timeoutu. Prowadziło to do zapisu do zwolnionej ramki stosu (use-after-free).
- CVE-2026-89846Krytyczne
W jądrze Linux w sterowniku scsi: qla2xxx funkcja qla2x00_status_entry() nie ograniczała wartości rsp_info_len pochodzącej z odpowiedzi FCP celu, co przy złośliwym lub błędnym celu powodowało niedomiar par_sense_len i odczyt poza zakresem danych sense. Mogło to ujawnić sąsiednią pamięć sterty do bufora sense.
- CVE-2026-89786Krytyczne
W jądrze Linux w funkcji ext4_read_inline_dir() występuje odczyt poza zakresem (out-of-bounds read). Iteracja po katalogu używa większego rozmiaru extra_size niż faktyczny bufor inline_size, co pozwala na odczyt nagłówka dirent poza końcem bufora, co może prowadzić do wycieku informacji lub awarii.
- CVE-2026-89783Krytyczne
W jądrze Linux w funkcji xfrm6_input_addr() występuje zapis poza zakresem (out-of-bounds write) z powodu błędnego sprawdzenia głębokości. Gdy sp->len osiągnie XFRM_MAX_DEPTH, zapis do sp->xvec[sp->len++] wykracza poza tablicę, co może prowadzić do awarii systemu.
- CVE-2026-89778Krytyczne
W jądrze Linux wykryto podatność w systemie plików ISOFS dotyczącą kompresji zisofs. Funkcja zisofs_uncompress_block() w przypadku pustego bloku zwraca nieprawidłową liczbę bajtów, ignorując przesunięcie poffset, co prowadzi do odczytu poza granicami tablicy stron podczas obsługi plików skompresowanych na obrazach ISO9660. Specjalnie spreparowany rekord Rock Ridge "ZF" może wywołać ten błąd podczas zwykłego odczytu pliku.
- CVE-2026-89713Krytyczne
W jądrze Linux funkcja nfsd_setattr() sprawdzała uprawnienie NFSD_MAY_TRUNC na podstawie rozmiaru pliku odczytanego bez blokady inode, a faktyczna zmiana rozmiaru następowała później pod inode_lock(). Tworzyło to okno TOCTOU dla plików append-only, w którym równoległe dopisanie mogło rozszerzyć plik przed wykonaniem rzeczywistego obcięcia bez wymaganej weryfikacji.
- CVE-2026-89712Krytyczne
W jądrze Linux funkcja nfsd4_ssc_expire_umount() przechodziła listę nfsd_ssc_mount_list, zwalniając nfsd_ssc_lock na czas mntput(), ale zachowywała wskaźnik tmp z makra list_for_each_entry_safe. Inny wątek NFSD mógł w tym oknie usunąć i zwolnić element będący zapisanym tmp, co prowadziło do użycia zwolnionej pamięci.
- CVE-2026-89708Krytyczne
W jądrze Linux naprawiono podatność use-after-free w module nfsd (serwer NFS). Po zniszczeniu sesji (DESTROY_SESSION) wątek rpciod mógł nadal odwoływać się do zwolnionej struktury sesji poprzez wskaźnik cl_cb_session, co prowadziło do dostępu do zwolnionej pamięci. Problem rozwiązano poprzez objęcie wskaźnika cl_cb_session ochroną RCU oraz zmianę zwalniania sesji z kfree() na kfree_rcu().
- CVE-2026-89702Krytyczne
W jądrze Linux naprawiono podatność w podsystemie nfsd dotyczącą punktów śledzenia nfsd_fh_verify i nfsd_fh_verify_err. Slot adresu serwera w buforze trace był rozmiarowany według xpt_remotelen, ale wypełniany danymi o długości xpt_locallen, co przy xpt_locallen większym niż xpt_remotelen powodowało zapis poza zarezerwowanym miejscem w buforze pierścieniowym. Problem jest osiągalny dla żądań NFSv2/v3 przez UDP, gdzie xpt_remotelen pozostaje zerowe przez cały czas życia transportu.
- CVE-2026-89677Krytyczne
W jądrze Linux w funkcji nfsd4_create_file() występuje możliwość użycia niewłaściwego dentry w fh_compose(). Funkcja dentry_create() może teoretycznie zwrócić inny dentry niż przekazany, co może prowadzić do użycia zwolnionego dentry (use-after-free). Poprawka przenosi wywołanie fh_compose() do momentu, gdy ostateczny dentry jest już znany.
- CVE-2026-89676Krytyczne
W jądrze Linux w funkcji nfsd4_copy() dla asynchronicznego COPY występuje błąd kolejności inicjalizacji. Funkcja nfs4_init_copy_state() jest wywoływana przed dup_copy_fields(), przez co wpis w IDR s2s_cp_stateids wskazuje na pamięć bufora COMPOUND, która jest ponownie używana. Może to prowadzić do dereferencji zwolnionej lub ponownie użytej pamięci, powodując uszkodzenie pamięci lub awarię jądra.
- CVE-2026-89675Krytyczne
W jądrze Linux naprawiono podatność use-after-free (UAF) w mechanizmie asynchronicznego kopiowania NFS (nfsd). Wyścig między wątkiem kopiującym a procedurami zamykania (OFFLOAD_CANCEL, nfsd4_shutdown_copy, nfsd4_cancel_copy_by_sb) mógł prowadzić do zwolnienia lub użycia zwolnionej struktury kopii, podwójnego zwolnienia nfsd_file oraz odwołań do zwolnionego task_struct.
- CVE-2026-89674Krytyczne
W jądrze Linux w funkcji nfsd4_ff_encode_layoutget() występują błędy w obliczaniu długości bufora XDR. Błędy te mogą prowadzić do zapisu poza granicami bufora lub wycieku niezainicjalizowanej pamięci jądra do klienta. Najgorszy przypadek występuje przy krótkich ciągach znaków, gdzie funkcja zapisuje do 5 bajtów poza zarezerwowanym buforem.
- CVE-2026-89672Krytyczne
W jądrze Linux w funkcji nfsacld_proc_setacl() dla NFSACL v2 SETACL występuje błąd, który może prowadzić do nieumyślnego usunięcia ACL. Gdy żądanie SETACL zawiera tylko NFS_ACL, drugi wskaźnik (acl_default) pozostaje NULL, a set_posix_acl() z NULL usuwa domyślny ACL katalogu. Podobnie mask=0 usuwa oba ACL.
- CVE-2026-89671Krytyczne
W jądrze Linux w funkcji nfsd3_proc_setacl() dla NFSv3 SETACL występuje błąd, który może prowadzić do nieumyślnego usunięcia ACL. Gdy żądanie SETACL zawiera tylko NFS_ACL, wskaźnik acl_default pozostaje NULL, a set_posix_acl() z NULL usuwa domyślny ACL katalogu. Podobnie mask=0 usuwa oba ACL.
- CVE-2026-89669Krytyczne
W jądrze Linux w funkcji nfsd4_copy_notify() stan cpntf był publikowany w strukturach IDR i liście klienta, zanim zakończono jego inicjalizację i zanim przypisano właściciela. Wyścig z żądaniem OFFLOAD_CANCEL mógł doprowadzić do zwolnienia wpisu i użycia zwolnionej pamięci (use-after-free) przy odczycie stateid oraz zapisach cp_p_stateid/cp_p_clid.
- CVE-2026-89662Krytyczne
W jądrze Linux funkcja __destroy_client() zwalnia właścicieli otwartych plików, ale właściciel blokady, którego jedynym odwołaniem jest zablokowana blokada (nbl), pozostaje w tablicy cl_ownerstr_hashtbl. Podczas rozbiórki klienta może dojść do zwolnienia właściciela przez laundromat i dereferencji NULL w remove_blocked_locks().
- CVE-2026-89660Krytyczne
W jądrze Linux w module NFSD występuje podatność use-after-free podczas odwoływania stanów administracyjnych. Funkcja nfsd4_revoke_states() zwalnia blokadę client_lock, co pozwala równoległemu procesowi zwolnić klienta, zanim odwołanie stanu zakończy się. Problem dotyczy wyścigu między odwoływaniem stanów a niszczeniem klienta.
- CVE-2026-89659Krytyczne
W jądrze Linux w module NFSD występuje podatność use-after-free podczas odwoływania delegacji. Funkcja nfs4_laundromat() usuwa wygasłą delegację z listy cl_delegations, zwalnia blokadę deleg_lock, a następnie revoke_delegation() próbuje użyć klienta, który mógł zostać już zwolniony. Brak przypięcia klienta przez cl_rpc_users umożliwia wyścig z niszczeniem klienta.
- CVE-2026-89658Krytyczne
W jądrze Linux w module NFSD występuje podatność use-after-free podczas czyszczenia odwołanych stanów w NFSv4.0. Funkcja nfs40_clean_admin_revoked() zwalnia blokadę client_lock, a następnie nfsd4_drop_revoked_stid() używa klienta, który mógł zostać zwolniony przez równoległy proces niszczenia. Brak przypięcia klienta umożliwia wyścig.
- CVE-2026-89656Krytyczne
W jądrze Linux w module libceph występuje podatność polegająca na braku odrzucania bucketów z niezgodnymi identyfikatorami CRUSH. Funkcja crush_decode() przechowuje dane według slotu tablicy, a złośliwa mapa może spowodować ponowne użycie przestrzeni roboczej innego bucketu, prowadząc do zapisu poza granicami bufora. KASAN zgłasza zapis poza granicami w bucket_perm_choose().
- CVE-2026-89655Krytyczne
W jądrze Linux w funkcji __kick_flushing_caps() w module ceph występuje podatność use-after-free. Funkcja iteruje po liście i_cap_flush_list, ale zwalnia blokadę i_ceph_lock podczas wysyłania komunikatów cap, co pozwala funkcji handle_cap_flush_ack() zwolnić wpis cf, do którego oryginalny wątek odwołuje się po ponownym zdobyciu blokady.
- CVE-2026-89654Krytyczne
W jądrze Linux w funkcji check_new_map() w podsystemie ceph występuje błąd use-after-free. Funkcja zwalnia mutex mdsc->mutex, aby wykonać operacje na sesji, ale w trzech ścieżkach (zmiana adresu, reconnect, przejście do stanu active) nie pobiera wcześniej referencji na obiekt sesji. Inny wątek może w tym oknie zwolnić i usunąć sesję, co prowadzi do dostępu do zwolnionej pamięci.
- CVE-2026-89653Krytyczne
W jądrze Linux w module ceph występuje podatność polegająca na braku odrzucania rang export_targets >= CEPH_MAX_MDS podczas dekodowania mdsmap. Funkcja check_new_map() używa każdego wpisu jako numeru bitu w bitmapie na stosie, więc ranga spoza przestrzeni nazw protokołu może spowodować zapis poza tablicą przez set_bit().
- CVE-2026-89652Krytyczne
W jądrze Linux w module ceph występuje podatność polegająca na braku ograniczenia długości kopiowanej nazwy dentry w eksporcie NFS. Funkcja ceph_get_name() kopiuje nazwę dostarczoną przez MDS do bufora o rozmiarze NAME_MAX bez sprawdzenia dname_len, co prowadzi do przepełnienia bufora. __get_snap_name() kopiuje dane w ten sam niekontrolowany sposób.
- CVE-2026-89650Krytyczne
W jądrze Linux w funkcji ceph_mdsmap_decode() brakowało sprawdzenia granic tablicy num_export_targets dla rekordów info MDS w wersjach 2 i 3. Złośliwy lub przejęty monitor Ceph może wysłać mapę MDS z nadmierną wartością num_export_targets, powodując odczyt poza granicami pamięci w kliencie jądra CephFS.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

