Podatności Linux kernel
7564 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- 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.
- CVE-2026-89649Krytyczne
W jądrze Linux występuje luka w funkcji __build_xattrs() w podsystemie Ceph, która dekoduje atrybuty xattr dostarczone przez serwer MDS. Brak sprawdzenia długości wartości ostatniego atrybutu pozwala złośliwemu lub przejętemu serwerowi metadanych ustawić długość większą niż rzeczywisty rozmiar bufora, co prowadzi do odczytu poza granicami alokacji. Poprawka dodaje wymaganą weryfikację ceph_decode_need(), która zwraca -EIO zamiast przechowywania nieprawidłowej długości.
- CVE-2026-89643Krytyczne
W jądrze Linux w funkcji audit_del_rule() występuje błąd use-after-free przy automatycznym usuwaniu reguł fsnotify. Bezwarunkowe audit_put_tree() zakłada przypadek szablonu, przez co dla reguł mieszanych AUDIT_DIR i AUDIT_EXE zdarzenie autoremove zwalnia żywą referencję drzewa zainstalowanej reguły. Powtórzenie tego może zwolnić drzewo, gdy inna reguła wciąż je referencjonuje, prowadząc do dereferencji zwolnionej ścieżki. Poprawka przenosi zwolnienie tymczasowego drzewa do audit_rule_change().
- CVE-2026-89630Krytyczne
W kliencie SMB jądra Linux funkcja is_valid_oplock_break() przestała skutecznie sprawdzać pole DataOffset. W wyniku wcześniejszej zmiany w obsłudze nagłówka RFC1002 wyrażenie używane do walidacji zawsze daje zero, przez co sprawdzenie nigdy nie odrzuca nieprawidłowych wartości.
- CVE-2026-89610Krytyczne
W jądrze Linux w dekoderze par mapowania systemu plików NTFS brakowało sprawdzenia, czy długość zakresu nie wykracza poza granicę wolumenu. Złośliwy obraz NTFS mógł spowodować dostęp do pamięci poza granicą wolumenu, prowadząc do uszkodzenia pamięci i eskalacji uprawnień.
- CVE-2026-89558Krytyczne
W jądrze Linux w funkcji raid10_sync_request() zmienna still_degraded została odwrócona (przypisano false zamiast true) podczas konwersji z int na bool. Powoduje to, że podczas odbudowy urządzenia przy jednoczesnym braku innego dysku lustrzanego bitmapa jest czyszczona nieprawidłowo, co prowadzi do cichego uszkodzenia danych po ponownym dodaniu brakującego dysku.
- CVE-2026-89555Krytyczne
W jądrze Linux funkcja mpls_select_multipath() buforuje wskaźnik hdr do nagłówka MPLS, a następnie wywołuje pskb_may_pull(), która może zastąpić nagłówek skb i zwolnić stary, pozostawiając hdr wskazujący na zwolnioną pamięć. Prowadzi to do use-after-free podczas odczytu wewnętrznego nagłówka IP.
- CVE-2026-89551Krytyczne
W jądrze Linux funkcja xdr_buf_trim() nie ogranicza odejmowania od buf->len, co przy wartości buf->len mniejszej niż suma iov_lens prowadzi do niedomiaru (underflow) i zawinięcia do wartości bliskiej UINT_MAX. Stan ten jest osiągalny przez gss_krb5_unwrap_v2(), a zawinięta wartość propaguje się do wszystkich niższych dekoderów XDR.
- CVE-2026-89550Krytyczne
W jądrze Linux w funkcji svcauth_gss_unwrap_priv() sprawdzana była tylko górna granica długości tokenu dostarczonego przez sieć, bez minimalnej długości. Token krótszy lub równy 16 bajtów (rozmiar nagłówka RFC 4121) trafiał do gss_krb5_unwrap_v2(), gdzie odczyt nagłówka wykraczał poza bufor, a funkcja rotate_left() mogła doprowadzić do dzielenia przez zero. Podatność naprawiono dodając sprawdzenie minimalnej długości tokenu przed przekazaniem go do mechanizmu unwrap.
- CVE-2026-89546Krytyczne
W jądrze Linux występuje wyścig podczas odbioru backchannel, gdy usługa callback NFS jest niszczona. xprt_enqueue_bc_request() może pominąć zakolejkowanie lub zwolnienie żądania, jeśli xprt->bc_serv zostało już wyczyszczone, prowadząc do wycieku lub użycia zwolnionej struktury.
- CVE-2026-89542Krytyczne
W jądrze Linux naprawiono podatność w funkcji gss_krb5_unwrap_v2() modułu SUNRPC, która przed walidacją długości tokenu odczytywała pola nagłówka EC i RRC poza granicami bufora. Błędna arytmetyka na liczbach bez znaku (underflow) mogła prowadzić do memmove o rozmiarze bliskim UINT_MAX, a w przypadku zerowej długości bufora do dzielenia przez zero. Dodano cztery zabezpieczenia walidujące długość tokenu i bufora.
- CVE-2026-89541Krytyczne
W jądrze Linux naprawiono podatność w funkcji gss_unwrap_resp_priv() w module SUNRPC. Błędna walidacja długości tokenu RPCSEC_GSS (opaque_len) pozwalała na przepełnienie arytmetyki u32 oraz brak dolnego limitu długości, co umożliwiało odczyty poza zakresem bufora w gss_krb5_unwrap_v2().
- CVE-2026-89538Krytyczne
W jądrze Linux naprawiono podatność w funkcji gss_krb5_unwrap_v2() w module SUNRPC. Token Kerberos v2 z polem 'extra count' (ec) większym niż długość tekstu jawnego, mimo że pochodzi od uwierzytelnionego peera z ważnym kontekstem GSS, pozostawiał bufor xdr_buf w niespójnym stanie (zerowa długość, niezgodne długości iov). Poprawka odrzuca takie tokeny przed wywołaniem xdr_buf_trim(), zwracając błąd GSS_S_DEFECTIVE_TOKEN.
- CVE-2026-89537Krytyczne
W jądrze Linux występuje luka w funkcji gss_krb5_verify_mic_v2() z modułu SUNRPC, która nie sprawdza minimalnej długości tokenu MIC przed odczytem danych. Zdalny atakujący (np. złośliwy serwer NFS) może przesłać zbyt krótki token, powodując odczyt poza zaalokowanym buforem. Problem został naprawiony poprzez dodanie sprawdzenia długości tokenu.
- CVE-2026-89536Krytyczne
W jądrze Linux w funkcji xs_tls_handshake_sync() podsystemu SUNRPC występuje problem use-after-free związany z wyścigiem przy anulowaniu uzgadniania TLS. Gdy handshake_req_cancel() zwróci false (bo handshake_complete() już oznaczył żądanie jako zakończone), oczekujący może zwolnić referencję do niższego transportu, zanim callback xs_tls_handshake_done() zakończy działanie. Może to doprowadzić do zwolnienia transportu w trakcie jego użycia.
- CVE-2026-89533Krytyczne
W jądrze Linux naprawiono błąd w funkcji svc_rdma_read_chunk_range() w module svcrdma, dotyczący arytmetyki przesunięć przy budowaniu zakresu odczytu chunków RDMA. Błędne użycie operatora '>' zamiast '>=' oraz niewłaściwe zastosowanie min_t() powodowało niedomiar typu u32, zawyżone długości DMA i potencjalnie duże alokacje pamięci (multi-MiB kmalloc_array_node). Dodatkowo funkcja odrzucała poprawne żądania z zerową długością.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

