Podatności Linux kernel
10 407 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-89579Wysokie
W jądrze Linux naprawiono podatność w mechanizmie BPF dotyczącą obliczania rozmiaru i indeksowania filtra Bloom na jądrach 32-bitowych. Gdy bitmapa osiąga przypadek fallback U32_MAX, błąd arytmetyczny powoduje zbyt małą alokację pamięci, a ujemne przesunięcia bitów pozwalają na zapis poza przydzielonym obszarem. Umożliwia to lokalne podniesienie uprawnień na 32-bitowym jądrze x86 przez proces z uprawnieniem CAP_BPF.
- CVE-2026-89578Niskie ryzyko· EPSS 9%
W jądrze Linux moduł dm-io przy żądaniach DM_IO_BIO odbudowywał bio docelowe poprzez kopiowanie biovec źródłowego, co przy niezgodnych z sektorem długościach wektorów (np. niezgodny bufor O_DIRECT) powodowało utratę fragmentu podsektora i zawieszenie I/O. Poprawka klonuje biovec źródła przez bio_alloc_clone() i remapuje na urządzenie docelowe, eliminując ręczne kopiowanie stron.
- CVE-2026-89577Niskie ryzyko· EPSS 9%
W jądrze Linux kody błędów BLK_STS_NOTSUPP i BLK_STS_INVAL nie powinny powodować awarii nogi (leg) w dm-raid1. Poprawka zmienia interfejs dm-io, aby raportował dwa bitmapy błędów: error_bits i unsup_bits, gdzie unsup_bits śledzi błędy nieobsługiwane, a dm-raid1 nie zawodzi nogi przy takich błędach. Naprawia to nieprawidłowe działanie przy niezgodnych wektorach bio na dm-raid1.
- CVE-2026-89576Niskie ryzyko· EPSS 11%
W jądrze Linux moduł dm-era zawiera wyciek pamięci bloku metadanych przy niepowodzeniu operacji take-snap. Funkcja metadata_take_snap() zwiększa licznik referencji superbloku i alokuje nowy blok cienia, ale jeśli późniejsze dm_sm_inc_block() zawiedzie, blok nie jest zwracany do mapy przestrzeni metadanych. Poprawka zwalnia klon przez dm_sm_dec_block() w ścieżkach błędów.
- CVE-2026-89575Niskie ryzyko· EPSS 13%
W jądrze Linux funkcja build_constructor_string() w module dm-raid1 nie rezerwuje miejsca na znak NUL kończący łańcuch po maksymalnie 20 cyfrach dziesiętnych wartości long long. Może to prowadzić do przepełnienia bufora w sprintf(). Poprawka rezerwuje dodatkowe miejsce na terminator NUL.
- CVE-2026-89569Wysokie
W jądrze Linux występuje podatność use-after-free w funkcji rfcomm_security_cfm() w podsystemie Bluetooth RFCOMM. Funkcja przegląda listę sesji i DLC bez blokady rfcomm_mutex, przez co wątek krfcommd może jednocześnie zwolnić tę samą sesję i jej DLC. Prowadzi to do odczytu zwolnionej pamięci (KASAN: slab-use-after-free).
- CVE-2026-89564Wysokie
W jądrze Linux występuje podatność use-after-free w ścieżce przekazywania pakietów multicast IPv4/IPv6. Gdy pakiet multicast nie jest dostarczany lokalnie, skb zachowuje przypisanie skb->sk ustawione przez bpf_sk_assign() lub wczesny demux UDP, mimo że referencja do gniazda nie jest gwarantowana. Po zniszczeniu gniazda późniejsze zwolnienie skb wywołuje sock_pfree() i odwołuje się do nieaktualnego wskaźnika skb->sk.
- CVE-2026-89563Wysokie
W jądrze Linux funkcja ip6_tnl_xmit() używa skb_realloc_headroom(), która zastępuje skb będący własnością wywołującego i zachowuje nowy skb tylko w zmiennej lokalnej. Jeśli po realokacji wystąpi błąd (np. odrzucenie enkapsulacji w tunelach collect_md lub błąd ip6_tnl_encap()), wywołujący nadal posiada wskaźnik do oryginalnego skb, co prowadzi do podwójnego zwolnienia skb.
- CVE-2026-89562Wysokie
W jądrze Linux funkcja ip6gre_tnl_link_config_route() nieprawidłowo dodaje długość nagłówka sprzętowego urządzenia niższego warstwy do dev->hard_header_len dla tuneli NBMA ip6gre. Powoduje to błędne obliczenie długości nagłówka sprzętowego tunelu, co może prowadzić do problemów z transmisją pakietów.
- CVE-2026-89561Wysokie
W jądrze Linux występuje podatność polegająca na braku sprawdzenia wartości NULL dla wskaźnika idev w funkcji ipv6_rpl_srh_rcv(). Gdy MTU interfejsu spadnie poniżej IPV6_MIN_MTU, addrconf_ifdown() czyści dev->ip6_ptr, a pakiet, który przeszedł wcześniejszą weryfikację, może dotrzeć do ipv6_rpl_srh_rcv() z już wyczyszczonym wskaźnikiem, powodując dereferencję NULL.
- CVE-2026-89560Wysokie
W jądrze Linux naprawiono lukę w mechanizmie Landlock dotyczącą tworzenia obiektów whiteout używanych przez OverlayFS. Tworzenie whiteout przez mknod(2) z S_IFCHR i makedev(0,0) oraz przez renameat2(2) z RENAME_WHITEOUT nie było prawidłowo kontrolowane przez uprawnienia Landlock, co pozwalało na obejście ograniczeń. Wprowadzono wymóg posiadania uprawnienia LANDLOCK_ACCESS_FS_MAKE_REG dla obu tych przypadków.
- CVE-2026-89559Wysokie
W jądrze Linux funkcja __nd_label_validate() w libnvdimm/labels zawiera przepełnienie liczb całkowitych. Pole nslot (u32) jest mnożone przez rozmiar etykiety w 32-bitach, co może spowodować zawinięcie i ominięcie sprawdzenia granic, prowadząc do zapisu poza buforem w nd_label_data_init().
- CVE-2026-89557Wysokie
W jądrze Linux w funkcji super_1_load() modułu md nie sprawdzano zakresu wartości sb->bblog_shift wczytywanej z superbloku na dysku. Wartość ta (0-255) jest używana jako przesunięcie bitowe przy obliczaniu sektora i liczby bloków, co przy nieprawidłowej wartości może doprowadzić do przepełnienia zmiennej 64-bitowej i błędu w funkcji badblocks_set() w block/badblocks.c.
- CVE-2026-89556Niskie ryzyko· EPSS 9%
W jądrze Linux funkcje elf_validity_cache_secstrings i elf_validity_cache_index_str uzyskują dostęp do nagłówków tabeli nazw sekcji (.shstrtab) i tabeli łańcuchów symboli (.strtab) bez uprzedniego sprawdzenia, czy ich typ to SHT_STRTAB. Jeśli typ sekcji to SHT_NULL lub SHT_NOBITS, sh_offset nie został zwalidowany i może wskazywać poza granice pamięci, powodując odczyt poza buforem.
- CVE-2026-89554Wysokie
W jądrze Linux funkcja mptcp_token_join_cookie_init_state() nie przywraca pola local_id z zapisanego wpisu cookie podczas odtwarzania gniazda żądania dla MP_JOIN obsługiwanego przez SYN cookies. Niezainicjalizowane pole jest następnie odczytywane przez subflow_ulp_clone() i zapisywane jako address-ID podłączonego podprzepływu, co może być wpływane przez zdalnego atakującego wysyłającego równoległe SYN-y MP_JOIN.
- CVE-2026-89553Wysokie
W jądrze Linux w sterowniku nouveau/gem występuje wyścig w ścieżce nie-uvmm między wyszukiwaniem vma w ioctl info a zamknięciem vma w ścieżce zamknięcia gem. Prowadzi to do użycia zwolnionej pamięci (use-after-free).
- CVE-2026-89552Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja param_set_charp() zwalnia poprzednią wartość parametru przed udaną alokacją nowej, co w przypadku niepowodzenia kmalloc_parameter() pozostawia parametr jako NULL. Może to później wywołać NULL pointer dereference, np. podczas nieudanej aktualizacji kompresora zswap przed inicjalizacją zswap.
- CVE-2026-89549Wysokie
W jądrze Linux funkcja svc_pool_for_cpu() może wybrać pulę bez wątków, gdy usługa ma mniej wątków niż pul (np. nfsd w trybie pernode/percpu z mniejszą liczbą wątków niż węzłów NUMA). Transport zakolejkowany w takiej puli nigdy nie zostanie obsłużony, co prowadzi do zawieszenia połączenia.
- CVE-2026-89548Wysokie
W jądrze Linux funkcja sunrpc_destroy_cache_detail() anuluje globalny cache_cleaner tylko gdy cache_list jest pusty, co nie ma miejsca podczas sprzątania per-netns. Prowadzi to do use-after-free, gdy cache_clean() używa wskaźnika do zwolnionego cache_detail.
- CVE-2026-89547Wysokie
W jądrze Linux funkcja __svc_create() ignorowała wartości zwracane przez percpu_counter_init() przy inicjalizacji trzech liczników statystyk puli RPC. Gdy alokacja per-CPU pamięci nie powiedzie się (np. przy presji pamięciowej), usługa RPC (nfsd, lockd, callback NFS) jest uruchamiana z niepoprawnie zainicjalizowanymi licznikami, których wskaźnik per-CPU ma wartość NULL. Powoduje to cichą korupcję danych w obszarze per-CPU bieżącego procesora oraz zwracanie błędnych wartości w /proc/fs/nfsd/pool_stats.
- CVE-2026-89545Wysokie
W jądrze Linux funkcja svc_rqst_free() zwalnia rq_argp i rq_resp synchronicznie, podczas gdy struktura rqstp jest zwalniana przez kfree_rcu(). Powoduje to okno, w którym czytelnicy RCU mogą uzyskać dostęp do już zwolnionych pól, prowadząc do use-after-free.
- CVE-2026-89544Wysokie
W jądrze Linux naprawiono cztery powiązane błędy w dekoderze tablicy opcji gssx (SUNRPC). Błędy powodowały dereferencję NULL w funkcji wywołującej, wyciek licznika referencji obiektu group_info oraz potencjalne użycie zwolnionej pamięci (use-after-free).
- CVE-2026-89543Niskie ryzyko· EPSS 11%
W jądrze Linux występuje podatność use-after-free w funkcjach __rpc_clnt_handle_event i __rpc_clnt_remove_pipedir w podsystemie sunrpc. Pole clnt->pipefs_sb nie jest odświeżane przy zdarzeniach montowania ani czyszczone przy odmontowaniu, co prowadzi do porównania z nieaktualnym wskaźnikiem i pominięcia sprzątania. W efekcie wpisy pipefs mogą wskazywać na zwolnioną strukturę rpc_clnt, co powoduje use-after-free podczas późniejszych wywołań rpc_info_open() lub rpc_show_info().
- CVE-2026-89540Wysokie
W jądrze Linux występuje wyścig (race condition) w module sunrpc. Wpis /proc/net/rpc/use-gss-proxy jest publikowany przez proc_create_data() zanim mutex sn->gssp_lock zostanie zainicjalizowany przez mutex_init(), co pozwala zapisującemu procesowi użyć niezainicjalizowanego muteksa.
- CVE-2026-89539Niskie ryzyko· EPSS 6%
W jądrze Linux w funkcji gssx_dec_option_array() podsystemu SUNRPC nie odrzucane są zduplikowane opcje CREDS_VALUE. Każde wystąpienie CREDS_VALUE powoduje wywołanie gssx_dec_linux_creds(), które nadpisuje creds->cr_group_info bez zwolnienia poprzedniej alokacji, prowadząc do wycieku pamięci. Wystarczy odpowiedź zawierająca dwie opcje CREDS_VALUE, aby wyciekła pierwsza alokacja group_info.
- CVE-2026-89535Wysokie
W jądrze Linux w funkcji svc_rdma_free() podsystemu svcrdma występuje use-after-free wynikający z kolejności operacji. Funkcja rpcrdma_rn_unregister() jest wywoływana po rdma_destroy_id(), przez co wpis sc_rn pozostaje w rd_xa urządzenia po zwolnieniu cm_id. Równoległe przejście ib_unregister_device może wywołać svc_rdma_xprt_done() na zwolnionym sc_cm_id. Dodatkowo brak sprawdzenia NULL przy dereferencji sc_cm_id.
- CVE-2026-89534Wysokie
W jądrze Linux w module svcrdma, gdy obsługa zdarzenia ADDR_CHANGE tworzy zastępczy identyfikator połączenia (cm_id) i alokacja się nie powiedzie, wskaźnik sc_cm_id nadal wskazuje na stary cm_id, który rdzeń CM ma zniszczyć. Późniejsze użycie sc_cm_id, np. w wywołaniu rdma_disconnect() z svc_rdma_detach(), prowadzi do use-after-free.
- CVE-2026-89531Niskie ryzyko· EPSS 6%
W jądrze Linux w module svcrdma funkcja handle_connect_req() nie podejmuje żadnych działań, gdy svc_rdma_create_xprt() nie zdoła zaalokować nowego transportu. Ponieważ rdzeń CM zwraca 0 dla zdarzeń CONNECT_REQUEST, nowy rdma_cm_id nie jest niszczony, co przy presji pamięci powoduje wyciek jednego rdma_cm_id na każdą nieudaną alokację.
- CVE-2026-89529Niskie ryzyko· EPSS 9%
W jądrze Linux w module svcrdma dekoder listy Read RPC/RDMA przechowuje długości segmentów podane w komunikacie bez walidacji. Zbyt duża wartość rs_length trafia do svc_rdma_build_read_segment(), gdzie na jej podstawie wyliczany jest nr_bvec i może dojść do dużej dynamicznej alokacji bvec przed sprawdzeniem liczby dostępnych rq_pages; jeśli zabezpieczenie przed przekroczeniem stron zadziała, świeżo pozyskany kontekst rw nie jest zwracany, co powoduje wyciek zasobu.
- CVE-2026-89528Wysokie
W jądrze Linux w module svcrdma pojedyncze długości segmentów Read są walidowane podczas dekodowania, ale nic nie powstrzymuje klienta przed wysłaniem wielu segmentów, których łączna długość przekracza budżet tablicy rq_pages. Gdy jeden segment dokładnie wypełnia tablicę stron, zabezpieczenie w svc_rdma_build_read_segment() jest pomijane, ponieważ len osiąga zero, a kolejny segment sięga do slotu sentinela NULL w rq_pages[rq_maxpages], powodując dereferencję NULL podczas mapowania DMA.
- CVE-2026-89527Niskie ryzyko· EPSS 12%
W jądrze Linux w module svcrdma funkcja svc_rdma_create() wywołuje kfree(cma_xprt), gdy svc_rdma_create_listen_id() zawiedzie. Ponieważ svc_xprt_init() wcześniej pozyskało referencję do przestrzeni nazw sieci przez get_net_track(), kfree omija svc_xprt_free(), która zwolniłaby tę referencję, co prowadzi do niezrównoważenia liczników referencji.
- CVE-2026-89525Niskie ryzyko· EPSS 8%
W jądrze Linux w systemie plików UDF mapowanie wirtualnej partycji UDF 1.50 używa tablicy VAT jako tablicy mapowań bloków fizycznych, gdzie s_num_entries przechowuje liczbę wpisów, a nie najwyższy prawidłowy indeks. udf_get_pblock_virt15() odrzuca obecnie tylko indeksy większe niż s_num_entries, więc spreparowany obraz może zażądać indeksu równego s_num_entries, przejść kontrolę zakresu i spowodować odczyt jednego wpisu poza zaalokowaną tablicą VAT.
- CVE-2026-89518Niskie ryzyko· EPSS 9%
W jądrze Linux naprawiono błąd w schedulerze sched_ext dotyczący funkcji dispatch kfuncs. W przypadku core scheduling funkcja ops.dispatch() może być wykonywana na innym CPU niż docelowe rq, co prowadziło do błędnych założeń w kilku ścieżkach kfunc, w tym do potencjalnego zakleszczenia (deadlock) w scx_dsq_move() oraz nieprawidłowego rozwiązywania SCX_DSQ_LOCAL.
- CVE-2026-89517Niskie ryzyko· EPSS 9%
W jądrze Linux naprawiono błąd w schedulerze sched_ext dotyczący korupcji stanu rq->core_pick podczas core scheduling. Gdy wybór zadania zwalniał blokadę rq (podczas dispatchu), równoległe wybory na tym samym rdzeniu SMT wzajemnie niszczyły swój stan, co prowadziło do NULL deref lub deadlocka i twardych zawieszeń systemu. Poprawka wymusza zwracanie RETRY_TASK, gdy dispatch zwolnił blokadę, tak aby wybór zatwierdzał tylko decyzje podjęte przy ciągle trzymanej blokadzie.
- CVE-2026-89515Niskie ryzyko· EPSS 7%
W jądrze Linux występuje podatność w podsystemie SCSI, gdzie w funkcji scsi_alloc_sgtables() bajty dopełnienia DMA (pad_len) dla ostatniego nie wyrównanego elementu scatterlisty pozostają niezainicjalizowane. Prowadzi to do odczytu niezainicjalizowanej pamięci (wykrytego przez KMSAN) podczas operacji DMA, co może skutkować wyciekiem danych lub niestabilnością systemu.
- CVE-2026-89514Niskie ryzyko· EPSS 10%
W jądrze Linux sterownik fnic (SCSI/FCoE) wywołuje alokację deskryptora VLAN z flagą GFP_KERNEL, trzymając jednocześnie spinlock vlans_lock. Alokacja GFP_KERNEL może usypiać, co jest niedozwolone w kontekście atomowym i może prowadzić do ostrzeżenia o uśpieniu w nieprawidłowym kontekście lub zakleszczenia.
- CVE-2026-89513Wysokie
W jądrze Linux w komponencie KVM dla architektury RISC-V występuje przepełnienie rozmiaru tablicy informacji o zdarzeniach PMU. Wartość num_events kontrolowana przez gościa jest mnożona przez sizeof(*einfo) i zapisywana w 32-bitowej zmiennej, co przy dużych wartościach powoduje obcięcie rozmiaru i alokację zbyt małego bufora. Następnie pętla iteruje po oryginalnej liczbie zdarzeń, co prowadzi do odczytów i zapisów poza granicami zaalokowanej pamięci.
- CVE-2026-89512Niskie ryzyko· EPSS 11%
W jądrze Linux w podsystemie remoteproc (sterownik SCP) występuje wyciek referencji do urządzenia przy nieudanym wyszukaniu danych sterownika przed jego powiązaniem. Referencja pobrana do urządzenia SCP nie jest zwalniana w przypadku niepowodzenia wyszukiwania.
- CVE-2026-89511Wysokie
W jądrze Linux sterownik qede (karta sieciowa QLogic FastLinQ) zawiera błąd, w którym pod presją pamięciową dochodzi do dereferencji wskaźnika NULL podczas przetwarzania fragmentów kontynuacji TPA. Z powodu braku przypisania tpa_info->buffer.data w qede_tpa_start() do pierścienia Rx trafia „widmowy" bufor z prawidłowym mapowaniem DMA, ale wskaźnikiem danych NULL, co powoduje panikę jądra w qede_fill_frag_skb().
- CVE-2026-89510Wysokie
W jądrze Linux w sterowniku RDMA/cxgb4 funkcja c4iw_remove() może zwolnić ctx->dev, podczas gdy zakolejkowana praca reg_work (rejestrująca urządzenie RDMA) jest wciąż oczekująca lub wykonywana. Prowadzi to do tego, że c4iw_register_device() uzyskuje dostęp do zwolnionego urządzenia.
- CVE-2026-89509Niskie ryzyko· EPSS 10%
W jądrze Linux sterownik RDMA/ionic nie został dostosowany do wymogu osadzania struktury rdma_counter w strukturze specyficznej dla sterownika i rejestrowania jej rozmiaru przez INIT_RDMA_OBJ_SIZE. Powoduje to, że rdma_zalloc_drv_obj() alokuje zero bajtów, co prowadzi do dereferencji wskaźnika NULL w alloc_and_bind().
- CVE-2026-89508Wysokie
W jądrze Linux w funkcji ucma_set_ib_path() brakowało blokady handlera podczas wywołania ucma_event_handler() z ścieżki write(). Równoległe wywołanie ucma_migrate_id() mogło zmienić ctx->file, powodując operacje na liście zdarzeń innego pliku bez odpowiedniego mutexa, co prowadziło do use-after-free (wykryte przez KASAN).
- CVE-2026-89506Niskie ryzyko· EPSS 10%
W jądrze Linux w podsystemie RDMA/uverbs metoda UVERBS_METHOD_REG_MR nie zawiera atrybutu UVERBS_ATTR_UHW, mimo że trzy sterowniki (mthca, irdma, siw) mają dane UHW powiązane z reg_mr i zakładają, że udata nie może być NULL. Złośliwy proces w przestrzeni użytkownika może wywołać dereferencję NULL udata w tych sterownikach.
- CVE-2026-89505Niskie ryzyko· EPSS 9%
W jądrze Linux w podsystemie RDMA/uverbs starsza ścieżka write() przekazuje do kodu dostawcy pakiet uverbs_attr_bundle bez elementu metody ioctl. Jeśli błędne dane wejściowe dostawcy spowodują wygenerowanie komunikatu błędu przez wspólny kod walidacji, funkcja uverbs_get_handler_fn() dereferencjonuje niezainicjalizowany wskaźnik method_elm.
- CVE-2026-89504Wysokie
W funkcji as3722_get_regulator_dt_data() jądra Linux wywołanie of_get_child_by_name() pozyskuje referencję do węzła, która jest przypisywana do pdev->dev.of_node, ale zaraz potem of_node_put(np) zwalnia tę referencję, pozostawiając wiszący wskaźnik. Usunięcie tego wywołania pozwala urządzeniu utrzymać referencję.
- CVE-2026-89503Wysokie
W podsystemie ring-buffer jądra Linux funkcja ring_buffer_alloc_read_page() jest podatna na wyścig z ring_buffer_subbuf_order_set, mogąc przydzielić stronę czytnika z nieaktualnym rozmiarem (order). Jeśli subbuf_order zmieni się w trakcie alokacji, bpage->order może nie odpowiadać rzeczywistej pamięci.
- CVE-2026-89502Niskie ryzyko· EPSS 10%
W podsystemie ring-buffer jądra Linux, gdy podbufory używają rozmiaru (order) większego niż 0, cpu_buffer->free_page jest przydzielana z użyciem subbuf_order. Poprawka zapewnia użycie właściwego rozmiaru dla cpu_buffer->free_page.
- CVE-2026-89501Wysokie
W podsystemie ring-buffer jądra Linux funkcja ring_buffer_subbuf_order_set() może wyczyścić cpu_buffer->free_page, co powoduje wyścigi z ring_buffer_alloc_read_page() i ring_buffer_free_read_page(). Poprawka polega na trzymaniu cpu_buffer->lock podczas zmiany rozmiaru podbufora.
- CVE-2026-89500Wysokie
W podsystemie ring-buffer jądra Linux odrzucenie buforowanej strony czytnika po równoczesnej zmianie rozmiaru bufora używa nowego globalnego subbuf_order w wywołaniu free_pages(), co może prowadzić do awarii jądra lub wycieku pamięci. Poprawka zapisuje rzeczywisty rozmiar strony wraz z jej adresem, czyniąc free_page strukturą buffer_data_read_page.
- CVE-2026-89499Wysokie
W podsystemie ring-buffer jądra Linux funkcja __rb_get_reader_page_from_remote() kontynuuje działanie mimo niepowodzenia callbacku swap_reader_page (zwracającego -EBUSY), co może prowadzić do nieprawidłowego przetwarzania listy stron. Poprawka traktuje błąd callbacku jako odzyskiwalny, loguje go przez pr_warn_ratelimited() i zwraca NULL.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

