Podatności Linux kernel
7564 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-93127Wysokie
W jądrze Linux w podsystemie BPF występuje błąd weryfikatora przy wypełnianiu stosu zwężającymi odczytami rozszerzającymi znak. Współdzielony identyfikator skalara nie jest usuwany, przez co dwa rejestry mogą dzielić ten sam identyfikator mimo różnych wartości, co pozwala weryfikatorowi wywnioskować nieprawidłowe ograniczenia i doprowadzić do dostępu poza granicami.
- CVE-2026-93125Wysokie
W jądrze Linux w podsystemie BPF występuje błąd walidacji argumentów kfunc rdonly_buf_size i rdwr_buf_size. Wartości przekraczające U32_MAX nie są odrzucane, lecz obcinane przy przypisaniu do pola mem_size typu u32, przez co weryfikator rejestruje nieprawidłowe ograniczenie rozmiaru pamięci.
- CVE-2026-93122Wysokie
W jądrze Linux w module USB gadget (funkcja UAC1/UAC2) atrybuty configfs rate-list nie sprawdzały długości listy przed zapisem do tablic o stałym rozmiarze UAC_MAX_RATES (10 elementów). Podanie więcej niż dziesięciu wartości powodowało zapis poza granicami tablicy p_srates[] lub c_srates[], co prowadzi do uszkodzenia pamięci. Dodatkowo nieprawidłowe zwalnianie wskaźnika po strsep() powodowało wyciek pamięci lub zwolnienie wskaźnika wewnętrznego.
- CVE-2026-93121Wysokie
W jądrze Linux w funkcji ffs_dmabuf_transfer() sterownika USB gadget f_fs ścieżki błędów (ESHUTDOWN, ENOMEM) wywoływały dma_fence_put() na obiekcie fence, który został jedynie przydzielony przez kmalloc, bez wcześniejszego dma_fence_init(). Wywołanie dma_fence_put() na niezainicjalizowanym obiekcie prowadzi do niezdefiniowanego zachowania. Poprawka zastępuje to wywołanie funkcją kfree().
- CVE-2026-93116Wysokie
W jądrze Linux w funkcji asus_wmi_add() sterownika platform/x86 asus-wmi etykiety ścieżek błędów są w niewłaściwej kolejności względem sekwencji rejestracji podsystemów. W efekcie niepowodzenie asus_wmi_custom_fan_curve_init() lub asus_screenpad_init() pomija wywołania czyszczące dla wcześniej zarejestrowanych zasobów, powodując ich wyciek. Poprawka zmienia kolejność etykiet na odwrotną względem alokacji.
- CVE-2026-93112Wysokie
W jądrze Linux funkcja bpf_cpumask_populate() zapisuje do celu za pomocą bitmap_copy(), ale cel jest typowany jako struct cpumask *. Pozwala to weryfikatorowi BPF zaakceptować wskaźniki cpumask zwracane przez read-only kfuncs (np. scx_bpf_get_online_cpumask()) jako zapisywalny cel. Poprawka zmienia typ celu na struct bpf_cpumask *, aby funkcja przestrzegała reguł własności jak inne mutujące kfuncs.
- CVE-2026-93111Wysokie
W jądrze Linux link tracing_multi nie ustawia flagi ftrace_managed, co powoduje że nie udaje się zwolnić linku tracing_multi przy dołączaniu linku tracing_multi, a następnie linku fentry. Prowadzi to do ostrzeżenia w bpf_trampoline_multi_detach i potencjalnego wycieku zasobów. Poprawka ustawia 'ftrace_managed = true' w register_fentry_multi().
- CVE-2026-93105Wysokie
W jądrze Linux funkcja esp_ssg_unref() zwalnia referencje do stron źródłowego scatterlist po zakończeniu operacji AEAD. Wywołuje skb_page_unref() na każdej stronie fragmentu dla transformacji out-of-place oraz w ścieżce błędów esp_output_tail(). Jest to błędne gdy skb przenosi managed frags (SKBFL_MANAGED_FRAG_REFS), które są własnością zerocopy ubuf i skb nie posiada referencji do stron. Brak zabezpieczenia powoduje underflow licznika referencji strony i zwolnienie strony wciąż używanej.
- CVE-2026-93095Wysokie
Podatność w systemie plików HFS+ w jądrze Linuxa dotyczy braku walidacji rekordu wątku przed odbudową klucza usuwania. Gdy hfsplus_delete_cat() jest wywoływane z str == NULL, rekonstruuje klucz z thread.nodeName bez sprawdzenia, czy rekord jest prawidłowy. Uszkodzony obraz może podać zbyt długą długość nazwy, co prowadzi do zapisu poza przydzieloną pamięcią. Poprawka używa hfsplus_brec_read_cat(), która ogranicza odczyt i weryfikuje rozmiar rekordu.
- CVE-2026-93079Wysokie
W jądrze Linux w module cxl/features funkcja cxlctl_get_feature() rozmiar bufora wyjściowego wyznacza z fwctl_rpc.out_len, ale urządzeniu nakazuje zapisać cxl_mbox_get_feat_in.count bajtów, gdzie count jest osobną wartością kontrolowaną przez użytkownika. Brak ograniczenia count względem out_len pozwala na przepełnienie bufora przydzielonego przez kvzalloc() i zapis poza zakresem sterty.
- CVE-2026-93074Wysokie
W jądrze Linux w module dax/fsdev funkcja __fsdev_dax_direct_access() używa virt_addr + linear_offset zamiast __va(phys) do zwrócenia kaddr. Dla urządzeń wielozakresowych z fizycznymi przerwami między zakresami ta liniowa arytmetyka przekracza przerwę i zwraca błędny adres wirtualny jądra.
- CVE-2026-93070Wysokie
W jądrze Linux sterownik media ipu6 zwalniał pamięć pdata po inicjalizacji urządzenia pomocniczego, co mogło prowadzić do podwójnego zwolnienia tego samego obiektu. Ścieżki błędów już wywołują put_device() i auxiliary_device_uninit(), które uruchamiają zwolnienie przez ipu6_bus_release().
- CVE-2026-93063Wysokie
W jądrze Linux w sterowniku wifi iwlwifi mei nie sprawdzano długości komunikatu SAP przed jego odczytem. Brak weryfikacji rozmiaru mógł prowadzić do przepełnienia bufora.
- CVE-2026-93054Wysokie
W jądrze Linux w sterowniku uio występuje problem z nieaktualnym wskaźnikiem info w ścieżce nieudanej rejestracji. Po device_add() urządzenie UIO jest widoczne dla użytkownika i można otworzyć /dev/uioX. Jeśli późniejszy krok zawiedzie, __uio_register_device() wycofuje urządzenie, ale pozostawia idev->info wskazujący na struct uio_info należący do wywołującego. To jest niebezpieczne, gdy otwarcie konkuruje z nieudaną rejestracją, prowadząc do użycia po zwolnieniu. Poprawka obsługuje błędy po device_add() jak przy wyrejestrowaniu: usuwa atrybuty UIO, czyści idev->info pod info_lock i budzi oczekujących przed usunięciem urządzenia.
- CVE-2026-93046Wysokie
W jądrze Linux funkcja software_node_get_reference_args() nieprawidłowo sprawdzała zakres indeksu, gdy przekazano wartość UINT_MAX, co prowadziło do dostępu poza zakresem tablicy właściwości. Poprawka rozszerza sprawdzenie zakresu, aby obejmowało również przypadek UINT_MAX.
- CVE-2026-93045Wysokie
W jądrze Linux funkcja bpf_arena_free_pages() akceptowała adresy aren poniżej bazowego adresu areny, co po zamaskowaniu do dolnych 32 bitów i rekonstrukcji adresu użytkownika prowadziło do zwolnienia zakresu poza mapowaniem areny. Poprawka odrzuca takie zwolnienia przed obliczeniem przyciętego zakresu.
- CVE-2026-93042Wysokie
W jądrze Linux sterownik dmaengine dw-edma wywoływał vchan_cookie_complete() przy odroczonym STOP, co powodowało wywołanie callbacku dla aktywnego deskryptora i pozostawienie innych deskryptorów w kolejce. Późny callback po dmaengine_terminate_sync() mógł odwoływać się do zwolnionego stanu klienta, a pozostałe deskryptory mogły wznowić działanie na ponownie użytych buforach. Poprawka przenosi wszystkie wydane i zgłoszone deskryptory do listy zakończonych bez planowania callbacków.
- CVE-2026-93039Wysokie
W jądrze Linux w sterowniku ASoC meson funkcja meson_card_reallocate_links() powiększa tablice DAI link i danych prywatnych dwoma kolejnymi wywołaniami krealloc(), aktualizując wskaźniki dopiero po obu sukcesach. Gdy pierwszy krealloc() przeniesie dane, a drugi zawiedzie, card->dai_link wskazuje zwolniony blok, co prowadzi do use-after-free i podwójnego zwolnienia.
- CVE-2026-93037Wysokie
W jądrze Linux w sterowniku RDMA hfi1 funkcja set_txreq_header_ahg() ignoruje wartość zwracaną przez sdma_txinit_ahg(). Gdy inicjalizacja zawiedzie, tx->txreq nie jest zainicjowany, ale wywołujący kontynuuje przetwarzanie żądania tak, jakby się powiodło.
- CVE-2026-92525Wysokie
W jądrze Linux w sterowniku RDMA rxe funkcja rxe_requester() nie waliduje pól num_sge/cur_sge dla WQE pochodzących z kolejki użytkownika. Lokalny nieuprzywilejowany użytkownik może zakolejkować WQE z poza zakresem cur_sge lub zbyt dużym num_sge, wymuszając odczyt poza zakresem tablicy sge w copy_data() (vmalloc OOB read).
- CVE-2026-92522Wysokie
W jądrze Linux w module ACPI processor wyszukiwanie hotplug IOAPIC parsuje rekordy MADT i _MAT bez pełnej walidacji granic. Wcześniej używano zadeklarowanej długości podtablicy do przesuwania kursora po zlokalizowaniu jedynie nagłówka generycznego, a ścieżka _MAT przekazywała nagłówek generyczny do funkcji pomocniczej IOAPIC.
- CVE-2026-92518Wysokie
W jądrze Linux dla RISC-V z włączoną opcją CFI_CLANG, podczas tailcall w BPF występuje uszkodzenie stosu jądra. Z powodu podwójnego pomijania instrukcji kcfi, skok przeskakuje o dodatkowe 4 bajty, pomijając korektę wskaźnika stosu. Poprawka usuwa to podwójne uwzględnienie.
- CVE-2026-92511Wysokie
W jądrze Linux w podsystemie RDMA/core występuje potencjalny błąd use-after-free w funkcji ib_destroy_cq_user(). Wywołanie rdma_restrack_del() następuje zbyt późno, przez co CQ pozostaje dostępna przez restrack, gdy powiązane zasoby specyficzne dla dostawcy są już zwalniane.
- CVE-2026-92510Wysokie
W jądrze Linux w podsystemie RDMA/core występuje potencjalny błąd use-after-free w funkcji ib_destroy_srq_user(). Wywołanie rdma_restrack_del() następuje zbyt późno, przez co SRQ pozostaje dostępna przez restrack, gdy powiązane zasoby specyficzne dla dostawcy są już zwalniane.
- CVE-2026-92508Wysokie
W jądrze Linux w podsystemie RDMA/core występuje potencjalny błąd use-after-free w funkcji ib_free_cq(). Wywołanie rdma_restrack_del() następuje zbyt późno, przez co CQ pozostaje dostępna przez restrack, gdy powiązane zasoby specyficzne dla dostawcy są już zwalniane.
- CVE-2026-92507Wysokie
W jądrze Linux w podsystemie RDMA/core występuje potencjalny błąd use-after-free w funkcji ib_dealloc_pd_user(). Wywołanie rdma_restrack_del() następuje zbyt późno, przez co PD pozostaje dostępna przez restrack, gdy powiązane zasoby specyficzne dla dostawcy są już zwalniane.
- CVE-2026-92504Wysokie
W jądrze Linux w sterowniku thermal intel int3400 funkcja evaluate_odvp() tworzy pliki sysfs ODVP przed zarejestrowaniem strefy termicznej i innych zasobów. Ścieżka sprzątania po błędzie wywołuje cleanup_odvp() tylko w późnym przypadku awarii sysfs, przez co błędy występujące po evaluate_odvp(), w tym awarie thermal_tripless_zone_device_register(), pozostawiają pliki i pamięć ODVP. Poprawka przenosi sprzątanie ODVP do wspólnej ścieżki ART/TRT i czyści buforowane wskaźniki ODVP.
- CVE-2026-92488Wysokie
W jądrze Linux sterownik RDMA/erdma w funkcjach erdma_destroy_qp(), erdma_destroy_cq(), erdma_dereg_mr() i erdma_destroy_ah() zwraca wcześnie, gdy erdma_post_cmd_wait() zawiedzie, co powoduje wyciek buforów kolejek, MTT, doorbells oraz identyfikatorów STAG, QPN, CQN i AHN.
- CVE-2026-92485Wysokie
W jądrze Linux w funkcji bpf_tracing_link_release występuje ostrzeżenie spowodowane nadpisaniem flag tr->flags przez 'tr->flags = BPF_TRAMP_F_TAIL_CALL_CTX' w weryfikatorze. Prowadzi to do uszkodzenia trampoliny i niepowodzenia przywrócenia instrukcji nop.
- CVE-2026-90435Wysokie
W jądrze Linux funkcja set_user_buf_size() w sterowniku RDMA/mlx5 oblicza rozmiar bufora QP przez przesunięcie w lewo dostarczonych przez użytkownika wartości rq.wqe_cnt i rq.wqe_shift jako liczb całkowitych ze znakiem. Duże rq.wqe_cnt powoduje przepełnienie ze znakiem, dając mały lub ujemny buf_size, przez co ib_umem_get() mapuje bufor mniejszy niż sprzęt faktycznie zapisze.
- CVE-2026-90430Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku iommu/tegra241-cmdqv funkcja tegra241_vintf_init_lvcmdq() publikowała wskaźnik vcmdq w tablicy vintf->lvcmdqs[] zanim tegra241_vcmdq_alloc_smmu_cmdq() zainicjalizował vcmdq->cmdq. Zatrzaśnięty błąd LVCMDQ w tym oknie powodował przekazanie wyzerowanego arm_smmu_cmdq do __arm_smmu_cmdq_skip_err() i dereferencję wskaźników NULL.
- CVE-2026-90429Wysokie
W jądrze Linux w komponencie iommu/tegra241-cmdqv występuje błąd synchronizacji między procedurą obsługi przerwania błędu (ISR) a inicjalizacją i deinicjalizacją VINTF. Brak odpowiedniego uporządkowania pamięci i synchronizacji może prowadzić do odwołania do wskaźnika NULL lub użycia zwolnionej pamięci (use-after-free) podczas równoczesnego błędu. Podatność została naprawiona poprzez zastosowanie barier pamięci smp_store_release/smp_load_acquire oraz synchronize_irq().
- CVE-2026-90427Wysokie
W jądrze Linux w sterowniku iommu/tegra241-cmdqv funkcja __tegra241_cmdqv_probe() używała devm_krealloc() do powiększenia @smmu, co zwalniało oryginalny wskaźnik po relokacji. Błąd po tej operacji zwracał NULL, a wywołujący dereferencjonował zwolniony @smmu na ścieżce awaryjnej.
- CVE-2026-90425Wysokie
W jądrze Linux w sterowniku iommu/tegra241-cmdqv funkcja tegra241_vintf_init_vsid() mapowała gościnny vSID na pojedynczy fizyczny Stream ID z master->streams[0], jedynie ostrzegając gdy urządzenie nie miało dokładnie jednego strumienia. Urządzenie z wieloma strumieniami miało mapowany tylko pierwszy, a urządzenie bez strumieni powodowało odczyt poza zakresem (ZERO_SIZE_PTR).
- CVE-2026-90423Wysokie
W jądrze Linux w module RDMA/rxe występuje użycie po zwolnieniu (UAF) na ścieżce obsługi błędów inicjalizacji ODP. Gdy rxe_odp_init_pages() zawiedzie, wskaźnik mr->umem nie jest zerowany, co powoduje, że późniejsze wywołanie ib_umem_release() odczytuje już zwolnione pola.
- CVE-2026-90419Wysokie
W jądrze Linux w systemie plików nilfs2 występuje odczyt poza granicami bufora podczas parsowania bloku super-root. Rozmiar metadanych inode super-root jest zaufany przed wywołaniem nilfs_read_inode_common(), co pozwala złośliwemu obrazowi systemu plików na odczyt poza blokiem super-root.
- CVE-2026-90403Wysokie
W jądrze Linux w funkcji rtl_pci_probe() ostatnia ścieżka błędu pomija funkcje czyszczące z powodu błędnej etykiety goto. Dodatkowo nie są cofane udane wywołania rtl_init_rfkill(), ieee80211_register_hw() i rtl_debug_add_one().
- CVE-2026-90402Wysokie
W jądrze Linux funkcja mhi_register_controller() dodaje urządzenie kontrolera przed utworzeniem opcjonalnego pliku sysfs trigger_edl. Jeśli sysfs_create_file() zawiedzie, ścieżka błędu tylko zwalnia referencję urządzenia, pozostawiając je zarejestrowanym.
- CVE-2026-90401Wysokie
W jądrze Linux obsługa REQ_NOWAIT w osobowościach md raid1, raid10 i raid456 jest fundamentalnie niekompletna. Przy zapisach może wystąpić sytuacja, gdy jedno lustro się powiedzie, a inne zwróci -EAGAIN, przez co md nie potrafi odróżnić presji kolejki od awarii urządzenia i może doprowadzić do rozbieżności danych między lustrami.
- CVE-2026-90399Wysokie
W jądrze Linux w funkcji ath12k_wmi_mac_phy_caps_parse() bufor mac_phy_caps jest alokowany jako tot_phy_id * len, gdzie len jest ograniczane, ale memcpy() przesuwa wskaźnik o rozmiar pełnej struktury na slot. Gdy firmware wysyła krótkie TLV, drugi i kolejne sloty są zapisywane poza końcem alokacji.
- CVE-2026-90398Wysokie
W jądrze Linux w funkcji ath11k_wmi_tlv_mac_phy_caps_parse() bufor mac_phy_caps jest alokowany jako tot_phy_id * len, gdzie len jest ograniczane, ale memcpy() przesuwa wskaźnik o rozmiar pełnej struktury na slot. Gdy firmware wysyła krótkie TLV, drugi i kolejne sloty są zapisywane poza końcem alokacji.
- CVE-2026-90392Wysokie
W jądrze Linux w funkcjach bpf_link_show_fdinfo i bpf_link_get_info_by_fd pole link->prog jest odczytywane bez blokady. Jeśli prog zostanie równocześnie zastąpiony przez bpf_link_update, stary prog może zostać zwolniony, co prowadzi do potencjalnego użycia zwolnionej pamięci (UAF). Poprawka odczytuje link->prog pod ochroną RCU.
- CVE-2026-90388Wysokie
W jądrze Linux w iommu/dma nieblokująca, niespójna ścieżka alokacji używa dma_alloc_from_pool(), która zwraca przydzieloną stronę i wypełnia cpu_addr tylko przy sukcesie. Kod polega na cpu_addr do wykrycia błędu alokacji, co jest nieprawidłowe. Poprawka sprawdza bezpośrednio zwróconą stronę przed użyciem jej do mapowania IOMMU.
- CVE-2026-90387Wysokie
W jądrze Linux w swiotlb funkcja swiotlb_alloc_tlb() może alokować z atomowej puli DMA, gdy wymagana jest odszyfrowana pula z kontekstu atomowego. Z CONFIG_DMA_DIRECT_REMAP pula atomowa używa przemapowanych adresów wirtualnych, które różnią się od adresów direct-map. swiotlb_init_io_tlb_pool() rekonstruuje adres wirtualny z adresu fizycznego, co dla alokacji z puli atomowej zapisuje błędny adres w pool->vaddr, powodując późniejszy błąd w swiotlb_free_tlb().
- CVE-2026-90383Wysokie
W jądrze Linux w sterowniku sgi-gru usunięto niebezpieczne operacje na tablicach stron kontekstu procesu wykonywane w kontekście przerwań. Dotychczas obsługa błędów TLB chodziła po stronach bez odpowiednich blokad, co może prowadzić do wyścigów i problemów z bezpieczeństwem.
- CVE-2026-90381Wysokie
W jądrze Linux w sterowniku mt76 poprawiono obsługę przełączania kontekstów kanałów w różnych pasmach w funkcji mt76_switch_vif_chanctx. Wcześniej krótkie przełączenia na różnych radiach mogły powodować nieprawidłowe działanie.
- CVE-2026-90380Wysokie
W jądrze Linux w sterowniku mt792x wykryto podatność use-after-free w funkcji mt76_rx_poll_complete. Z powodu wyścigu wskaźnik do wcid może wskazywać na już usuniętą strukturę STA, co prowadzi do nieprawidłowego dostępu do pamięci.
- CVE-2026-90372Wysokie
W sterowniku mt7915 występuje niedomiar (underflow) przy obliczaniu liczby strumieni przestrzennych. Jeśli mapa MCS nie zawiera żadnych wspieranych strumieni, funkcja zwraca wartość 255, która jest zapisywana do pól beamforming w firmware.
- CVE-2026-90371Wysokie
W sterowniku mt76 występuje wyścig w recyklingu buforów RXDMAD_C. Te bufory pochodzą z pul stron powiązanych z innym NAPI, co powoduje, że bezpośredni recykling może kolidować z właścicielem NAPI, prowadząc do błędów.
- CVE-2026-90367Wysokie
W jądrze Linux w sterowniku wifi mt76 (mt7996) funkcja mt7996_mac_reset_work() zatrzymywała wątek tx i wyłączała NAPI RX/TX przed pobraniem muteksu dev->mt76.mutex. Ponieważ mt76_worker_disable()/_enable() nie są zliczane referencyjnie, a __mt76_set_channel() przełącza ten sam wątek i bit MT76_RESET pod muteksem, wyścig między obsługą SER L1 a zmianą kanału mógł pozostawić wątek wznowiony i bit MT76_RESET wyczyszczony podczas resetowania pierścieni DMA, uszkadzając deskryptory lub tokeny.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

