Podatności Linux kernel
7564 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-89446Niskie ryzyko· EPSS 10%
W jądrze Linux funkcja iommufd_take_all_iova_rwsem() pobiera referencję obiektu i blokadę zapisu przed zapisem IOAS do tablicy xarray; jeśli xa_store() zawiedzie, bieżący IOAS nie zostaje zwolniony, co prowadzi do wycieku. Poprawka zwalnia bieżący IOAS przed cofnięciem poprzednich wpisów.
- CVE-2026-89445Wysokie
W jądrze Linux selftest IOMMUFD TRIGGER_IOPF pożycza uchwyt attach z group->pasid_array bez synchronizacji z odłączeniem PASID, co przy równoczesnym iommu_report_device_fault() prowadzi do użycia zwolnionej pamięci (UAF). Poprawka dodaje iopf_rwsem w mock_dev do synchronizacji.
- CVE-2026-89444Niskie ryzyko· EPSS 10%
W jądrze Linux funkcja set_attribute() w dell-wmi-sysman wypełnia bufor żądania atrybutu BIOS hasłem administratora, a następnie zrzuca cały bufor przez print_hex_dump_bytes(), ujawniając hasło w logu jądra. Poprawka usuwa ten zrzut.
- CVE-2026-89443Wysokie
W jądrze Linux funkcje isst_if_get_perf_level_mask() i isst_if_get_base_freq_mask() używają poziomu podanego przez użytkownika jako indeksu do perf_levels[] bez walidacji, co umożliwia odczyt poza zakresem. Poprawka dodaje sprawdzenia zakresu i odrzuca wyłączone poziomy SST-PP.
- CVE-2026-89442Wysokie
W jądrze Linux funkcja isst_if_clos_assoc() waliduje socket_id przez '>' zamiast '>=', co pozwala na indeksowanie poza tablicę sst_inst[]; dodatkowo brak sprawdzenia NULL dla niepowiązanych pakietów prowadzi do dereferencji NULL. Poprawka odrzuca socket_id >= topology_max_packages() i NULL sst_inst.
- CVE-2026-89441Wysokie
W jądrze Linux sterownik mmc via-sdmmc nie anuluje pracy carddet_work przy usuwaniu urządzenia; praca już zakolejkowana może wykonać się po zwolnieniu hosta, powodując użycie zwolnionej pamięci. Poprawka anuluje carddet_work po zwolnieniu IRQ i przed anulowaniem finish_bh_work.
- CVE-2026-89440Wysokie
W jądrze Linux sterownik mmc via-sdmmc rejestruje i włącza przerwanie card-detect przed mmc_add_host(); jeśli mmc_add_host() zawiedzie, przerwanie pozostaje zarejestrowane i obsługuje zwolniony host, powodując użycie zwolnionej pamięci. Poprawka dodaje ścieżkę błędu, która wyłącza i zwalnia przerwanie oraz anuluje carddet_work.
- CVE-2026-89439Niskie ryzyko· EPSS 10%
W jądrze Linux w ISST brakowało sprawdzenia NULL dla isst_common.sst_inst[] przy nieudanym ładowaniu gniazda, co mogło prowadzić do dereferencji NULL. Poprawka dodaje sprawdzenie NULL dla spójności z innymi miejscami.
- CVE-2026-89438Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku platform/x86 ISST brakowało walidacji identyfikatora logicznego CPU oraz poziomu CLOS ID używanych w funkcji zarządzania mocą rdzeni. Wartości przekraczające obsługiwane maksimum nie były odrzucane, mimo że służą do obliczania offsetu MMIO.
- CVE-2026-89437Niskie ryzyko· EPSS 5%
W jądrze Linux w sterowniku platform/x86 int1092 pamięć przydzielona dla device_mode_info w parse_package() nie była zwalniana w niektórych ścieżkach błędów funkcji sar_probe(). Powodowało to wyciek pamięci.
- CVE-2026-89436Wysokie
W jądrze Linux w sterowniku panasonic-laptop występuje błąd przepełnienia bufora poza granice tablicy pcc->sinf[]. Funkcja acpi_pcc_retrieve_biosdata() zapisuje wartość sentinela pod indeksem równym liczbie elementów pakietu SINF, co przy num_sifr równym tej liczbie powoduje zapis jednego elementu poza zaalokowaną tablicą (4-bajtowe przepełnienie sterty). Problem ujawnia się na sprzęcie, gdzie HKEY.SQTY zwraca 37, a pakiet HKEY.SINF() ma 38 elementów.
- CVE-2026-81018Niskie ryzyko· EPSS 3%
W jądrze Linux w sterowniku platform/x86 think-lmi obsługa wielu certyfikatów pozwala obiektowi uwierzytelniania systemu przechowywać pola ->signature i ->save_signature, które nie są zwalniane przy usuwaniu sterownika. Powoduje to wyciek pamięci.
- CVE-2026-81017Wysokie
W jądrze Linux w sterowniku platform/chrome sensorhub numer czujnika raportowany przez EC (in->sensor_num) nie był walidowany w cros_ec_sensorhub_ring_handler(). Wartość większa lub równa sensor_num prowadziła do odczytu i zapisu poza granicami tablicy batch_state[].
- CVE-2026-81016Wysokie
W jądrze Linux w sterowniku platform/x86/amd/pmc funkcja amd_stb_s2d_init() ignorowała wartości zwracane przez kilka poleceń SMU S2D oraz wartości S2D_PHYS_ADDR_LOW/HIGH. W przypadku błędu adres fizyczny pozostawał niezainicjalizowany i był przekazywany do devm_ioremap(), co mogło mapować adres fizyczny 0.
- CVE-2026-81015Wysokie
W jądrze Linux w sterowniku platform/x86/amd/pmc funkcja amd_pmc_probe() rejestrowała handler LPS0 s2idle oraz tworzyła katalog debugfs przed wywołaniem amd_stb_s2d_init(). Gdy ta ostatnia funkcja zawiodła, ścieżka błędu nie wyrejestrowywała handlera ani nie usuwała katalogu debugfs, co prowadziło do uszkodzenia listy i błędu jądra przy ponownym ładowaniu modułu.
- CVE-2026-81014Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku platform/x86 hp-bioscfg funkcje sk_store() i kek_store() usuwały końcowy znak nowej linii przed alokacją bufora klucza, ale do hp_wmi_perform_query() przekazywały oryginalny rozmiar count zamiast length. Powodowało to odczyt jednego bajtu poza zaalokowanym buforem.
- CVE-2026-81013Niskie ryzyko· EPSS 8%
W jądrze Linux w sterowniku platform/x86 hp-bioscfg funkcja validate_password_input() obliczała length = strlen(buf) i sprawdzała buf[length - 1] bez uprzedniego upewnienia się, że length jest niezerowe. Zapis pustego łańcucha (samego '\n') do current_password lub new_password powodował odczyt buf[-1], czyli jednego bajtu przed alokacją sterty.
- CVE-2026-81012Wysokie
W jądrze Linux w sterowniku platform/x86 hp-bioscfg funkcja hp_get_string_from_buffer() porównywała długość konwertowanego łańcucha z rozmiarem bufora docelowego za pomocą warunku "size > dst_size". Gdy długość była równa dst_size, bezwarunkowy zapis terminatora NUL trafiał jeden bajt poza bufor docelowy.
- CVE-2026-81011Wysokie
W jądrze Linux w module platform/x86 hp-bioscfg parsery pakietów ACPI otrzymywały błędną liczbę elementów — zamiast zwalidowanej wartości obj->package.count przekazywały długość pola NAME (typu string), co wynikało z unii acpi_object. Obecnie jest to bezpieczne, ponieważ funkcja hp_init_bios_package_attribute() odrzuca pakiety o zbyt małej liczbie elementów, ale planowane złagodzenie tego sprawdzenia doprowadziłoby do odczytu poza granicami sterty (out-of-bounds heap read). Poprawka przekazuje prawidłową, zwalidowaną liczbę elementów do parserów.
- CVE-2026-81010Wysokie
W jądrze Linux funkcja io_waitid_cb() w podsystemie io_uring nie respektuje flagi tw.cancel, gdy wywołanie trafia na ścieżkę awaryjną task_work uruchamianą z wątku kworker. Powoduje to wywołanie __do_wait() w kontekście niewłaściwego zadania, co może prowadzić do błędnego działania mechanizmu waitid.
- CVE-2026-81009Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja io_handle_query_entry() w podsystemie io_uring ogranicza hdr.size dla kopiowania z przestrzeni użytkownika, ale zachowuje oryginalną wartość jako usize. Funkcja copy_struct_to_user() używa tej wartości i może wyzerować do prawie 4 GiB pamięci, w tym na ścieżce błędu. Interfejs jest dostępny bez pierścienia poprzez IORING_REGISTER_QUERY.
- CVE-2026-81008Wysokie
W jądrze Linux występuje podatność use-after-free w funkcjach icc_get() i of_icc_get_by_index(). Gdy alokacja pamięci dla path->name nie powiedzie się, ścieżka błędu wywołuje kfree(path) bez wcześniejszego usunięcia wskaźników z listy req_list, co prowadzi do dangling pointers i późniejszego użycia zwolnionej pamięci. Problem został naprawiony poprzez zastąpienie kfree(path) funkcją icc_put(path) oraz zwolnienie mutexa icc_lock przed jej wywołaniem.
- CVE-2026-81007Wysokie
W jądrze Linux funkcja ipmb_write() w sterowniku IPMI odczytywała pola wiadomości przed walidacją bajtu długości. Krótki lub zerowy zapis może odczytać niezainicjalizowane bajty stosu, a długość mniejsza niż nagłówek SMBus powoduje niedomiar długości zapisu blokowego.
- CVE-2026-81006Wysokie
W jądrze Linux funkcja ipmi_add_smi() tworzy pliki nr_users i nr_msgs przed próbą utworzenia pliku maintenance_mode. Jeśli ostatnie tworzenie się nie powiedzie, ścieżka błędu usuwa tylko nr_users przed zwolnieniem referencji do interfejsu, pozostawiając zarejestrowany atrybut sysfs nr_msgs w zwolnionym interfejsie.
- CVE-2026-81005Niskie ryzyko· EPSS 6%
W jądrze Linux występuje podatność typu NULL pointer dereference w sterowniku ipmi_si. Gdy rejestracja interfejsu IPMI nie powiedzie się (np. BMC nie odpowiada poprawnie na polecenie Get Device ID), funkcja shutdown_smi() zwalnia pamięć si_sm i ustawia wskaźnik na NULL, ale flaga in_shutdown nie jest ustawiana. Asynchroniczne zadanie redo_bmc_reg może następnie ponowić próbę komunikacji z już wyczyszczonym interfejsem, co prowadzi do wywołania start_kcs_transaction() z NULL wskaźnikiem i awarii jądra.
- CVE-2026-81004Wysokie
W jądrze Linux, jeśli podczas uruchamiania interfejsu IPMI wystąpi błąd, może on mieć zaplanowaną pracę do wykonania. Praca ta musi zostać anulowana przed zwolnieniem interfejsu, czego brakowało w module ipmi:msghandler.
- CVE-2026-81003Wysokie
W jądrze Linux w funkcji afiucv_hs_rcv() (net/iucv) gniazdo AF_IUCV było wybierane wyłącznie na podstawie czterech pól nazw w nagłówku transportowym, bez sprawdzania urządzenia sieciowego, z którego ramka przyszła. Umożliwiało to dostarczenie ramki z dowolnego netdev do gniazda AF_IUCV, w tym z urządzenia w innej przestrzeni nazw. Poprawka pomija gniazda, których hs_dev nie odpowiada urządzeniu wejściowemu.
- CVE-2026-81001Wysokie
W jądrze Linux występuje podatność use-after-free w funkcji sl_sync() sterownika SLIP. Tablica slip_devs[] przechowuje wskaźniki do struktur net_device bez zwiększania licznika referencji, a zwolnienie wpisu następuje poza ochroną rtnl_lock(), co pozwala na dostęp do zwolnionej pamięci podczas wywołania slip_open().
- CVE-2026-81000Wysokie
W jądrze Linux w funkcji tun_get_user() sterownika TUN/TAP wartość tun->align jest używana zarówno jako headroom skb, jak i do wyboru ilości danych liniowych. Gdy align przekracza dostępne miejsce w jednej stronie skb, wyrażenie SKB_MAX_HEAD(align) ulega niedomiarowi, a wynik staje się ujemny i po przypisaniu do zmiennej size_t powoduje umieszczenie skb->data poza zaalokowanym obszarem. OVS może propagować zbyt duży headroom z innego portu do TUN/TAP.
- CVE-2026-80999Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku DSA dla układów Realtek funkcje rtl83xx_reset_assert() i rtl83xx_reset_deassert() używały gpiod_set_value() zamiast gpiod_set_value_cansleep() do sterowania GPIO resetu. Gdy GPIO resetu jest obsługiwane przez kontroler mogący zasypiać (np. ekspander I2C), wywołanie gpiod_set_value() generuje ostrzeżenie jądra. Podatność dotyczy jąder v6.9+ zawierających te funkcje pomocnicze.
- CVE-2026-80998Wysokie
W jądrze Linux sterownik bnxt w ścieżce SW USO może wcześnie zakończyć działanie z NETDEV_TX_BUSY, mimo że txr->kick_pending zostało wcześniej ustawione na 1. W takiej sytuacji sterownik zapisuje część deskryptorów BD, ale nie zapisuje doorbella, co powoduje zatrzymanie kolejki TX, ponieważ urządzenie nie wie, że ma wykonać transmisję i wygenerować ukończenie wybudzające kolejkę.
- CVE-2026-80997Wysokie
W jądrze Linux naprawiono błąd w sterowniku IPA (net: ipa), który powodował trwałe zatrzymanie kolejki TX modemu po wznowieniu działania (runtime resume). Funkcja ipa_start_xmit() bezwarunkowo zatrzymywała kolejkę TX przed wywołaniem pm_runtime_get(), licząc na wznowienie kolejki przez mechanizm wake. Jednak zadanie wake było uruchamiane zbyt wcześnie — zanim stan zasilania osiągnął RPM_ACTIVE — przez co wznowienie kolejki nie następowało, a transmisja zawieszała się na stałe.
- CVE-2026-80996Niskie ryzyko· EPSS 6%
W jądrze Linux handlery netlink L2TP dla tworzenia i modyfikacji tunelu oraz sesji wysyłają powiadomienia multicast po zakończeniu właściwej operacji. Błąd alokacji, kodowania lub multicastu powiadomienia jest zwracany jako wynik komendy, mimo że operacja już się powiodła, co może powodować ponawianie przez wywołujących i gromadzenie aktywnych obiektów.
- CVE-2026-80995Wysokie
W jądrze Linux funkcja mctp_route_lookup() używa rt->dev bez utrzymywania referencji, a mctp_route_lookup_single() zwraca trasę tylko pod ochroną RCU. Urządzenie trasy może zostać równolegle zniszczone, co prowadzi do use-after-free w mctp_dev_saddr() przy odczycie rt->dev->addrs[0], osiągalnego przez nieuprzywilejowanego lokalnego użytkownika AF_MCTP bez CAP_NET_RAW. W tym samym oknie mctp_dev_hold() zwiększa refcount, który już osiągnął zero.
- CVE-2026-80993Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja phylink_inband_caps() sprawdza PCS zwrócony przez mac_select_pcs tylko pod kątem NULL, podczas gdy mac_select_pcs może zwrócić również wskaźnik błędu. Powoduje to, że phylink_pcs_inband_caps() dereferencjonuje ops ze struktury phylink_pcs mimo błędu, co prowadzi do paniki jądra.
- CVE-2026-80992Wysokie
W jądrze Linux sterownik ravb może dereferencjonować nieprawidłowy zegar PTP, ponieważ zegar PTP jest niedostępny przed pierwszym otwarciem, a błędy rejestracji mogą pozostawić wskaźnik błędu w priv->ptp.clock. Odczyt indeksu zegara może wtedy spowodować dereferencję NULL lub wskaźnika błędu.
- CVE-2026-80991Wysokie
W jądrze Linux w sterowniku sieciowym ravb (Renesas Ethernet AVB) procedura obsługi przerwania PTP ravb_ptp_interrupt() może wyścignąć się z funkcją ravb_ptp_stop(), przekazując wskaźnik zegara do ptp_clock_event() w momencie, gdy ptp_clock_unregister() zwalnia ten zegar. Prowadzi to do użycia po zwolnieniu pamięci (use-after-free). Poprawka wprowadza bezpieczny dostęp do wskaźnika zegara oraz atomowe odłączenie go przed wyłączeniem przerwań PTP i synchronizację przerwań.
- CVE-2026-80990Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku Thunderbolt funkcja tb_xdomain_alloc_in_hopid() przekazuje żądany identyfikator HopID jako dolne ograniczenie do ida_alloc_range(), więc zajęty identyfikator nie jest błędem — alokator zwraca następny wolny. tbnet_connected_work() traktuje każdy inny identyfikator jako błąd i zwraca bez zwolnienia przydzielonego zasobu, przez co alokacja pozostaje aktywna przez cały czas trwania połączenia XDomain. Poprawka zwalnia identyfikator, gdy nie jest tym, o który proszono.
- CVE-2026-80989Wysokie
W jądrze Linux w sterowniku Thunderbolt każda ścieżka błędu w tbnet_connected_work() cofa własne operacje i zwraca bez wyczyszczenia flagi login_sent, przez co połączenie nadal wygląda na ustanowione. Kolejne tbnet_tear_down() wykonuje ponownie demontaż, który już się odbył — zatrzymuje już zatrzymane pierścienie (dev_WARN(), fatalne przy panic_on_warn) i zwalnia net->remote_transmit_path nawet na ścieżce niezgodności HopID, gdzie połączenie nigdy nie posiadało tego identyfikatora. Poprawka czyści login_sent na tych ścieżkach.
- CVE-2026-80988Niskie ryzyko· EPSS 6%
W jądrze Linux w module NTB ntb_transport funkcja ntb_transport_tx_enqueue() miała odrzucać pakiety wysyłane przy niedziałającym łączu QP, ale zwracała 0 bez zużycia pakietu. Zero oznacza sukces, więc ntb_netdev zgłasza NETDEV_TX_OK i zapomina skb — nic go nie zakolejkowało ani nie zwolniło, co powoduje wyciek jednego skb na każdą transmisję wyścigującą się z awarią łącza. Poprawka zwraca -ENOLINK, przywracając kontrakt, że niezerowy wynik pozostawia bufor właścicielowi.
- CVE-2026-80987Wysokie
W jądrze Linux w module NTB ntb_transport funkcja ntb_process_tx() obsługuje zbyt duży bufor, wywołując tx_handler() z pustym wskaźnikiem danych i zwracając sukces. ntb_netdev nie zwalnia wtedy skb w swoim callbacku ukończenia ani nie wchodzi na ścieżkę błędu kolejkowania, co powoduje wyciek. Poprawka odrzuca zbyt duże bufory w ntb_transport_tx_enqueue() przed zajęciem wpisu kolejki i zwraca -EMSGSIZE.
- CVE-2026-80985Wysokie
W jądrze Linux w module net/smc funkcje smc_llc_rmt_delete_rkey() i smc_llc_save_add_link_rkeys() czytają część komunikatu v2, która nie mieści się w 44-bajtowej unii smc_llc_msg, ograniczając się rozmiarem bufora, a nie rozmiarem tego, co faktycznie przyszło. Na łączu ze współdzielonym buforem odbioru v2 44-bajtowy DELETE_RKEY_V2 deklarujący 255 kluczy rkey sięga do rkey[9..254] w danych pozostawionych przez wcześniejszy komunikat i przekazuje je do smc_rtoken_delete(), co może usunąć zarejestrowany rtoken. Poprawka kopiuje ogon komunikatu do wpisu kolejki i deklaruje klucze inline jako element unii.
- CVE-2026-80984Niskie ryzyko· EPSS 10%
W jądrze Linux w module net/smc funkcja smc_close_stream_wait() wywołuje smc_tx_prepared_sends() wewnątrz warunku sk_wait_event(), który jest oceniany raz z zwolnioną blokadą gniazda. smcd_buf_detach() czyści conn->sndbuf_desc z smc_conn_kill() pod lock_sock(), więc grupa łącząca kończąca się w trakcie oczekiwania pozostawia pomocnika dereferencjonującego NULL, powodując błąd w close(). Poprawka próbkuje wskaźnik raz w pomocniku i zgłasza brak przygotowanych danych, gdy jest nieustawiony.
- CVE-2026-80983Niskie ryzyko· EPSS 6%
W jądrze Linux w module net/smc funkcja smc_switch_conns() pobiera referencję na gniazdo SMC przed zwolnieniem lgr->conns_lock, aby połączenie pozostało aktywne podczas pobierania slotu CDC. Etykieta err_out zwalnia tylko referencję łącza wr_tx, więc to wczesne wyjście zwraca bez pasującego sock_put(). Wyciek sk_refcnt oznacza, że smc_sock nigdy nie zostaje zniszczony, a referencja do przestrzeni nazw sieci nie jest zwalniana, co uniemożliwia demontaż netns. Poprawka restrukturyzuje kod tak, aby jedno sock_put() obejmowało oba wyniki.
- CVE-2026-80982Wysokie
W jądrze Linux w module net/smc funkcja smc_rx_splice() przekazuje strony RMB do potoku i pobiera referencję gniazda na wpis, aby smc_sock pozostał aktywny do zakończenia odczytu. Jednak połączenie nie — równoległe zamknięcie uruchamia smc_conn_free(), które zwalnia bufor odbioru z powrotem do puli grupy łączącej. smc_rx_pipe_buf_release() sprawdza sk_state przed pobraniem blokady gniazda; stan może się zmienić między testem a blokadą, a smc_rx_update_cons() dereferencjonuje conn->rmb_desc i przechodzi przez conn->lgr, które zostały już zwolnione — jest to użycie po zwolnieniu pamięci. Poprawka pobiera najpierw blokadę gniazda i sprawdza conn->freed.
- CVE-2026-80979Wysokie
W jądrze Linux w podsystemie net/smc funkcja smc_conn_free() wyrejestrowuje połączenie tylko wtedy, gdy grupa łączy wciąż znajduje się na liście urządzenia, i nigdy nie ustawia conn->killed. W oknie między odłączeniem grupy a zabiciem jej połączeń urządzenie może ponownie uzbroić tasklet odbiorczy po tasklet_kill(), co prowadzi do użycia zwolnionego bufora (use-after-free).
- CVE-2026-80978Wysokie
W jądrze Linux urządzenia tuneli IP wyliczają reklamowany needed_headroom z niższych urządzeń wyjściowych. Stos urządzeń tworzonych przez użytkownika może sprawić, że wartość przekroczy zakres 16-bitowych przesunięć nagłówka skb, co przy rezerwacji w wyjściu IP powoduje zawinięcie tych przesunięć.
- CVE-2026-80977Wysokie
W jądrze Linux funkcja skb_tx_error() kończy zerocopy uarg i czyści SKBFL_ALL_ZEROCOPY, a skb_zcopy_downgrade_managed() czyści SKBFL_MANAGED_FRAG_REFS — oba w skb_shinfo() współdzielonym przez klony. Przy klonie Open vSwitch (OVS_ACTION_ATTR_RECIRC) prowadzi to do zdjęcia znacznika z pakietu wciąż przekazywanego i późniejszego odszyfrowania ESP w miejscu na fragmentach, których nie posiada się na wyłączność.
- CVE-2026-80975Wysokie
W jądrze Linux występuje podatność w sterowniku mfd: qnap-mcu. Funkcja qnap_mcu_exec() publikuje bufor na stosie (rx) do ścieżki odbioru, która może zapisywać do niego po przekroczeniu limitu czasu lub po niepowodzeniu zapisu, gdy ramka stosu nie jest już ważna. Prowadzi to do uszkodzenia pamięci stosu i potencjalnego wykonania dowolnego kodu.
- CVE-2026-80974Niskie ryzyko· EPSS 10%
W jądrze Linux w funkcjach sm501_pci_probe() i sm501_plat_probe() przydzielana jest pamięć dla struktury sm501_devdata, która nie jest zwalniana przez odpowiadające funkcje usuwania sm501_pci_remove() i sm501_plat_remove(). Powoduje to wyciek pamięci przy każdym usunięciu urządzenia.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

