Podatności Linux kernel
10 419 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-98777Niskie ryzyko· EPSS 6%
W jądrze Linux w mechanizmie binder, gdy transakcja TF_UPDATE_TXN zastępuje oczekującą transakcję asynchroniczną w zamrożonym procesie, przestarzała transakcja jest zwalniana bezpośrednio przez kfree(), pomijając binder_free_txn_fixups(). Powoduje to wyciek wszystkich wpisów binder_txn_fd_fixup i referencji struct file pozyskanych przez fget().
- CVE-2026-98776Niskie ryzyko· EPSS 9%
W jądrze Linux występuje podatność use-after-free w funkcji binder_add_device w systemie plików binderfs. Po opublikowaniu nowego wpisu urządzenia i zwolnieniu blokady katalogu nadrzędnego, równoległe wywołanie unlinkat() może usunąć wpis i zwolnić obiekt urządzenia, do którego binder_add_device() następnie zapisuje, powodując zapis do zwolnionej pamięci.
- CVE-2026-98775Niskie ryzyko· EPSS 6%
W jądrze Linux w module nitro_enclaves, gdy ne_create_vm_ioctl() zwróci błąd SLOT_ALLOC po udanym anon_inode_getfile(), ścieżka błędu wywołuje fput(enclave_file), a następnie zwalnia ne_enclave. Ponieważ fput() odracza finalne __fput() przez task_work, ne_enclave_release() uruchamia się po zwolnieniu ne_enclave i odwołuje się do ne_enclave->slot_uid, powodując use-after-free.
- CVE-2026-98774Niskie ryzyko· EPSS 5%
W jądrze Linux w module rust_binder odroczone elementy pracy na liście todo wątku nie są czyszczone w metodzie Thread::release(). Może to wystąpić, gdy wątek kończy działanie, mając aktywną transakcję wychodzącą, co prowadzi do wycieku zasobów.
- CVE-2026-98773Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku USB cdc-acm funkcja acm_port_shutdown() bezwarunkowo wywołuje acm_unpoison_urbs() i przy ustawionej kwirkowej fladze ALWAYS_POLL_CTRL natychmiast ponownie wysyła ctrlurb oraz wszystkie URBy odczytu. Jeśli równoległy acm_disconnect() zwolni te URBy i ich bufory DMA w trakcie przetwarzania, dochodzi do use-after-free w acm_ctrl_irq() lub acm_read_bulk_callback().
- CVE-2026-98772Niskie ryzyko· EPSS 6%
W jądrze Linux w sterownikach USB serial niektóre sterowniki urządzeń wieloportowych uzyskują dostęp do danych sterownika portu z procedur obsługi ukończenia współdzielonych URBy wysyłanych przy attach() lub pierwszym open() i zatrzymywanych przy disconnect() lub ostatnim close(). Proste sprawdzenie NULL nie zapobiega wyścigowi z niszczeniem portu, co prowadzi do use-after-free.
- CVE-2026-98771Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku USB storage sierra_ms funkcja sierra_get_swoc_info() żąda 60 bajtów przez usb_control_msg(), ale wywołujący traktują tylko ujemną wartość zwracaną jako błąd. Urządzenie odpowiadające krótkim transferem IN pozostawia niezinicjalizowany ogon bufora swoc_info, który truinst_show() wypisuje do świata czytelnego atrybutu sysfs "truinst", ujawniając do 5 bajtów nieaktualnej pamięci sterty jądra.
- CVE-2026-98770Niskie ryzyko· EPSS 9%
W jądrze Linux w module USB gadget midi2 tablice deskryptorów jack in/out w strukturze f_midi2_usb_config mają rozmiar MAX_CABLES, co okazało się nieprawidłowe. Wpisy są dodawane zarówno z wejść, jak i wyjść, więc w każdej iteracji pętli dodawane są dwa, co daje dwukrotnie większy rozmiar niż oczekiwano i może prowadzić do zapisu poza zakresem (OOB) przy dużej liczbie jacków skonfigurowanych przez configfs.
- CVE-2026-98769Niskie ryzyko· EPSS 6%
W jądrze Linux funkcje generic_set_cmd() i generic_get_cmd() w sterowniku USB gadget f_uac1_legacy używają dolnego półbajtu ctrl->bRequest jako indeksu do tablicy con->data[], która ma tylko 5 elementów. Wartości indeksu od 5 do 15 powodują dostęp poza zakresem tablicy na stercie (do 44 bajtów). Złośliwy host USB może wysłać specjalnie spreparowane żądanie SET_CUR/GET_CUR, wywołując tę podatność z procedury obsługi przerwania.
- CVE-2026-98768Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku USB Type-C anx7411 przerwanie IRQ jest zarządzane przez devm, więc może nadal kolejkować plat->work, gdy funkcja remove() niszczy kolejkę roboczą. Prowadzi to do wyścigu i potencjalnego użycia zwolnionej pamięci.
- CVE-2026-98767Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku USB dwc3 gadget funkcja dwc3_check_event_buf() zwraca IRQ_NONE bez zapisu z powrotem do GEVNTCOUNT, gdy odczytana wartość przekracza długość bufora zdarzeń. Ponieważ przerwanie DWC3 jest poziomowo wyzwalane, nie wyczyszczone źródło IRQ powoduje burzę przerwań, nagromadzenie nieobsłużonych przerwań i panikę jądra (BUG w spurious.c:184).
- CVE-2026-98766Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku USB gadget aspeed-vhub element roboczy wake_work nie jest anulowany w ast_vhub_remove(), co może prowadzić do użycia zwolnionej pamięci po zwolnieniu vhub i jego portów. Ponadto żądanie zdalnego wybudzenia może ponownie uzbroić work po anulowaniu, jeśli flaga registered nie zostanie wyczyszczona.
- CVE-2026-98765Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik USB gadget dummy-hcd emuluje synchronize_irq(), czekając aż licznik callback_usage spadnie do 0. Licznik ten nie jest jednak zwiększany podczas wywołań procedur ukończenia żądań, co może prowadzić do sytuacji, w której procedura unbind sterownika gadget uruchomi się przed zakończeniem wszystkich oczekujących ukończeń żądań.
- CVE-2026-98764Niskie ryzyko· EPSS 6%
W jądrze Linux w funkcji f_fs (FunctionFS) występuje błąd NULL pointer dereference. Gdy przestrzeń użytkownika skonfiguruje FunctionFS tylko z deskryptorami pełnej prędkości (FUNCTIONFS_HAS_FS_DESC), a gadget działa z wyższą prędkością (HIGH lub SUPER), ioctl FUNCTIONFS_ENDPOINT_DESC wybiera indeks deskryptora na podstawie prędkości gadgetu, który może być NULL, co prowadzi do natychmiastowej paniki jądra.
- CVE-2026-98763Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja usb_disable_endpoint() czyści tylko jeden z wpisów dev->ep_out[epnum] lub dev->ep_in[epnum] dla niezerowych kontrolnych punktów końcowych, pozostawiając drugi wskaźnik do wyłączonego/zwolnionego punktu końcowego. Może to prowadzić do użycia zwolnionej pamięci.
- CVE-2026-98762Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik USB dwc2 usuwa timer wybudzenia dopiero po zwolnieniu stanu hosta w dwc2_hcd_free(), a timer_delete() nie synchronizuje wywołania zwrotnego ani nie zapobiega ponownemu zakolejkowaniu. Może to prowadzić do użycia zwolnionej pamięci.
- CVE-2026-98761Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku USB Type-C TCPM naprawiono błąd, w którym nieudane rozpoczęcie sekwencji FAST_ROLE_SWAP AMS nie powodowało resetu portu. W rezultacie, gdy wadliwy kabel sygnalizował FRS podczas odłączenia, kontroler TCPC autonomicznie włączał zasilanie VBUS i pozostawało ono aktywne mimo braku poprawnego przejścia stanu. Poprawka wymusza przejście do stanu ERROR_RECOVERY i reset portu w takiej sytuacji.
- CVE-2026-98760Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja tps6598x_connect() przekazuje niezainicjalizowaną strukturę typec_partner_desc do typec_register_partner(), inicjalizując tylko niektóre pola. Może to prowadzić do zapisania śmieciowych wskaźników funkcji i ich późniejszego wywołania, a także wycieku danych stosu przez sysfs.
- CVE-2026-98759Niskie ryzyko· EPSS 10%
W jądrze Linux funkcja cd321x_update_work() przekazywała do typec_register_partner() strukturę typec_partner_desc alokowaną na stosie, inicjalizując jedynie pola usb_pd, accessory i identity. Pozostałe pola, w tym wskaźniki funkcji attach i deattach oraz pd_revision i usb_capability, pozostawały niezainicjalizowane, co mogło prowadzić do wywołania przypadkowych wskaźników funkcji lub wycieku danych ze stosu przez sysfs.
- CVE-2026-98758Niskie ryzyko· EPSS 6%
W jądrze Linux klient pmic_glink jest zwalniany przez mechanizm devres po powrocie z pmic_glink_ucsi_remove(), więc jego callbacki mogą kolejkować pracę do tego momentu. Praca wykonana po wywołaniu ucsi_unregister() odwołuje się do zwolnionego stanu (tablicy connectorów) lub ponownie rejestruje/wyrejestrowuje instancję, co prowadzi do use-after-free.
- CVE-2026-98757Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja cdns3_gadget_start() uruchamia dwa zadania robocze (pending_status_wq i aligned_buf_wq) na system_freezable_wq, których handlery używają struktury cdns3_device. Funkcja cdns3_gadget_exit() nie czeka na zakończenie tych zadań, zwalniając endpointy, bufory i prywatne dane urządzenia, co może prowadzić do use-after-free, gdy zakolejkowane zadanie wykona się po zwolnieniu pamięci.
- CVE-2026-98756Niskie ryzyko· EPSS 6%
W jądrze Linux kontroler Cadence USBSS jest urządzeniem PCI z dwiema funkcjami. Gdy druga funkcja jest probowana, podczas gdy pierwsza została włączona, ale nie ustawiła jeszcze swoich danych sterownika, pci_get_drvdata() zwraca NULL, a następujące przypisanie wrap->devfn powoduje dereferencję NULL i awarię jądra.
- CVE-2026-98755Niskie ryzyko· EPSS 6%
W jądrze Linux struktura vio_vcc pkt alokowana na stosie w funkcji vcc_send_ctl() była częściowo zainicjalizowana, pozostawiając pole tag.stype_env niezainicjalizowane przed wysłaniem przez ldc_write(). Może to prowadzić do wycieku danych ze stosu jądra do peera LDC.
- CVE-2026-98754Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja vcc_cleanup() ustawia port->tty na NULL bez trzymania port->lock, co powoduje wyścig z callbackami LDC w vcc_event(), które czytają port->tty pod port->lock i używają tty->port. Może to prowadzić do use-after-free, gdy callback dereferencjonuje tty->port po tym, jak cleanup już go zniszczył i zwolnił.
- CVE-2026-98753Niskie ryzyko· EPSS 6%
W jądrze Linux występuje luka w warstwie tty_port polegająca na tym, że flaga TTY_IO_ERROR nie jest przywracana, gdy aktywacja portu się nie powiedzie. Może to prowadzić do prób wejścia/wyjścia na porcie, który został usunięty lub wyłączony, powodując panikę jądra z powodu dostępu do niezegarowanego sprzętu lub dereferencji wskaźnika NULL, gdy ioctl TTY ściga się z hangup i open.
- CVE-2026-98752Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja tty_port_tty_vhangup() może powrócić przed faktycznym zamknięciem portu, jeśli ściga się z innym wywołaniem hangup. Brak serializacji między tty_port_tty_vhangup() a tty_port_hangup() prowadzi do use-after-free i dereferencji wskaźnika NULL w ścigających się ioctl-ach oraz przy przetwarzaniu asynchronicznych hangupów (utrata nośnej).
- CVE-2026-98751Niskie ryzyko· EPSS 6%
W jądrze Linux ioctl-e break (TCSBRK i TCSBRKP) mogą ścigać się z hangup i wywoływać sterownik tty dla urządzenia, które zostało już usunięte lub wyłączone. Po kontrolowanym przez użytkownika timeoucie może dojść do wywołania sterownika nawet po ponownym otwarciu tty.
- CVE-2026-98750Niskie ryzyko· EPSS 6%
W jądrze Linux resetowanie zapisanego stanu termios przy rejestracji urządzenia może powodować use-after-free, gdy zamknięcie TTY (i zapisanie termios) ściga się z ponowną rejestracją. Problem dotyczy sterowników, które nie gwarantują, że numer minor nie jest już używany.
- CVE-2026-98749Niskie ryzyko· EPSS 7%
W jądrze Linux w sterowniku max3100 (tty: serial) funkcja max3100_shutdown() zatrzymuje timer, ale kończy działanie wcześnie podczas zawieszenia systemu. Jeśli urządzenie SPI zostanie odłączone przed wznowieniem, max3100_remove() zwalnia port, podczas gdy timer pozostaje uzbrojony, co może prowadzić do użycia zwolnionej pamięci (use-after-free) przez max3100_timeout(). Poprawka dodaje końcowe zniszczenie timera w max3100_remove() z użyciem timer_shutdown_sync() oraz zwalnia IRQ i niszczy kolejkę roboczą przed zwolnieniem portu.
- CVE-2026-98748Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik serial: 8250_bcm7271 ma use-after-free w brcmuart_remove(). Funkcja brcmuart_remove() anuluje hrtimer przed wyrejestrowaniem portu, więc przerwanie receive-timeout, które nadejdzie w międzyczasie, ponownie uzbroi timer. Po zwolnieniu pamięci priv przez devm callback wykonuje się na zwolnionej pamięci.
- CVE-2026-98747Niskie ryzyko· EPSS 4%
W jądrze Linux funkcja serial_core_unregister_port() przekazuje port->port_dev do serial_core_get_ctrl_dev(), która dereferencjonuje wskaźnik. Gdy port->port_dev jest NULL (brak urządzenia portu lub nieudana rejestracja przed serial_core_port_device_add()), dochodzi do dereferencji NULL.
- CVE-2026-98746Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik serial: ma35d1 ma wyciek referencji zegara w ma35d1serial_probe(). Funkcja of_clk_get() zwraca zegar z referencją, która musi być zwolniona przez clk_put(), ale ma35d1serial_probe() nigdy tego nie robi, przez co referencja wycieka na ścieżkach błędów probe i przy usuwaniu portu.
- CVE-2026-98745Niskie ryzyko· EPSS 6%
W jądrze Linux na architekturze arm64 funkcja restore_sve_fpsimd_context() nie odrzuca sygnałowego kontekstu SVE, w którym flaga SVE_SIG_FLAG_SM jest wyczyszczona, a ładunek SVE jest obecny, na systemach obsługujących wyłącznie SME (bez SVE). Pozwala to na wprowadzenie zadania w stan nieprzetwarzania strumieniowego SVE, mimo że sprzęt tego nie obsługuje, co może prowadzić do błędów EL1 UNDEF i paniki jądra.
- CVE-2026-98744Niskie ryzyko· EPSS 6%
W jądrze Linux w komponencie ASoC codec max98363 struktura stream_config nie jest inicjalizowana przed przekazaniem do sdw_stream_add_slave(). Pole type może zawierać śmieci i jest później kopiowane do stream->type przez sdw_config_stream().
- CVE-2026-98743Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku ASoC rt1017-sdca-sdw struktura stream_config nie była inicjalizowana przed przekazaniem do sdw_stream_add_slave(). Pole type mogło zawierać przypadkowe dane, które następnie były kopiowane do stream->type przez sdw_config_stream().
- CVE-2026-98742Niskie ryzyko· EPSS 6%
W jądrze Linux w podsystemie ALSA seq ścieżka compat dla ioctl port-info nie używała muteksa client->ioctl_mutex, w przeciwieństwie do natywnej ścieżki ioctl. Umożliwiało to równoległym żądaniom CREATE_PORT ominięcie sprawdzenia liczby portów, co mogło prowadzić do zawinięcia indeksu portu i dostępu do zwolnionego subskrybenta.
- CVE-2026-98740Niskie ryzyko· EPSS 7%
W jądrze Linux w sterowniku EDAC/altera funkcje konfiguracji ECC (a10 .setup oraz ich helpery) były oznaczone jako __init, mimo że są wywoływane ze ścieżki probe, która może wykonać się po zwolnieniu pamięci __init. Prowadziło to do odwołań do zwolnionej pamięci przy odroczonym probe (-EPROBE_DEFER) lub ręcznym unbind/rebind.
- CVE-2026-98739Niskie ryzyko· EPSS 6%
W jądrze Linux występuje wyścig (race condition) w implementacji Bluetooth RFCOMM dotyczący początkowego odwołania do portu TTY. Zarówno ścieżka instalacji, jak i zwalniania urządzenia mogą zwolnić to samo odwołanie, co prowadzi do użycia po zwolnieniu pamięci (use-after-free). Problem dotyczy urządzeń RFCOMM_RELEASE_ONHUP i został potwierdzony przez KASAN.
- CVE-2026-98738Niskie ryzyko· EPSS 6%
W jądrze Linux występuje podatność use-after-free w funkcji build_pairing_cmd() obsługującej Bluetooth SMP. Funkcja odczytuje zdalne dane OOB bez blokady hdev->lock, przez co równoległe polecenie usunięcia danych OOB może zwolnić wpis, zanim SMP zdąży go odczytać. Problem został rozwiązany przez wprowadzenie dedykowanej blokady remote_oob_lock.
- CVE-2026-98737Niskie ryzyko· EPSS 9%
W jądrze Linux występuje podatność use-after-free w podsystemie Bluetooth (hci_sync). Wątek roboczy poleceń synchronizacji odczytuje wpisy pamięci podręcznej zapytań bez odpowiedniej blokady, co pozwala równoległemu ioctl HCIINQUIRY zwolnić wpis i doprowadzić do odczytu zwolnionej pamięci.
- CVE-2026-98736Niskie ryzyko· EPSS 6%
W jądrze Linux występuje podatność use-after-free w funkcji hci_enhanced_setup_sync() odpowiedzialnej za konfigurację połączenia Bluetooth SCO. Funkcja odczytuje wskaźnik conn->parent bez blokady hci_dev_lock, przez co równoległy wątek odbierający może zwolnić obiekt rodzica ACL, zanim zostanie on odczytany. Luka została naprawiona poprzez utrzymanie blokady hci_dev_lock przez cały czas przełączania kodeka.
- CVE-2026-98735Niskie ryzyko· EPSS 6%
W jądrze Linux występuje podatność use-after-free w podsystemie Bluetooth. Funkcja hci_chan_sent() wybiera kanał w sekcji RCU, ale zwalnia blokadę przed użyciem chan->conn, przez co równoległe usunięcie kanału (np. w wyniku timeoutu rozłączenia) może zwolnić pamięć kanału, zanim scheduler TX zakończy jego użycie.
- CVE-2026-98734Niskie ryzyko· EPSS 6%
W jądrze Linux występuje podatność use-after-free w podsystemie Bluetooth. Funkcja hci_low_sent() wybiera połączenie w sekcji RCU, ale zwalnia blokadę odczytu przed użyciem wskaźnika, przez co hci_sched_iso() i hci_sched_sco() mogą odwołać się do połączenia, które zostało już zwolnione przez hci_abort_conn_sync(). Problem został rozwiązany poprzez utrzymywanie blokady hci_dev_lock() podczas wyboru i transmisji połączenia.
- CVE-2026-98733Niskie ryzyko· EPSS 6%
W jądrze Linux w funkcji hci_queue_iso() ścieżka fragmentowanych pakietów ISO wywołuje __skb_queue_tail() bez trzymania blokady conn->data_q.lock. Wątek transmisji może równolegle usuwać pakiety z kolejki przez skb_dequeue(), co prowadzi do use-after-free lub uszkodzenia kolejki.
- CVE-2026-98732Niskie ryzyko· EPSS 6%
W funkcji btintel_hw_error() w sterowniku btintel jądra Linux wydruk "Exception info %s" używa skb->data + 1, ale 12-bajtowy ładunek nie musi być zakończony znakiem NUL, co pozwala na odczyt poza końcem bufora.
- CVE-2026-98731Niskie ryzyko· EPSS 11%
W funkcji btintel_pcie_recv_frame() jądra Linux zmienna plen typu u16 jest obliczana jako HDR_SIZE + dlen. Dla ramek ACL/ISO dlen jest 16-bitowe, więc wartość >= 0xFFFC powoduje przepełnienie sumy, omijając sprawdzenie "skb->len < plen" i pozwalając skb_trim() obciąć pakiet.
- CVE-2026-98730Niskie ryzyko· EPSS 6%
W funkcji btintel_pcie_send_frame() jądra Linux dane skb->data są kopiowane do stałego bufora DMA BTINTEL_PCIE_BUFFER_SIZE (4096) przez memcpy() w btintel_pcie_prepare_tx(), z 4-bajtowym nagłówkiem PCIe. Proces użytkownika z dostępem HCI_CHANNEL_USER może wstrzyknąć zbyt duży pakiet i przepełnić bufor.
- CVE-2026-98729Niskie ryzyko· EPSS 5%
W jądrze Linux funkcja get_align_mask() zwraca huge_page_mask_align() dla hugetlbfs, ale get_align_bits() dodaje va_align.bits niezależnie, więc vm_unmapped_area() zwraca adres poza granicą wielkiej strony, a __unmap_hugepage_range() trafia na BUG_ON(start & ~huge_page_mask(h)) przy niszczeniu mapowania.
- CVE-2026-98728Niskie ryzyko· EPSS 6%
W funkcji tpm2_get_random() jądra Linux, gdy odpowiedź zawiera tag TPM2_ST_SESSIONS, funkcja pomija 4-bajtowe pole rozmiaru parametru przed zlokalizowaniem danych losowych, ale sprawdzenie granic nadal waliduje długość odpowiedzi względem TPM_HEADER_SIZE. Obcięta odpowiedź może przejść sprawdzenie i spowodować, że memcpy() odczyta do 4 bajtów poza końcem odpowiedzi.
- CVE-2026-98727Niskie ryzyko· EPSS 9%
W podsystemie nvme-multipath jądra Linux nagłówek przestrzeni nazw jest oznaczany jako zoned przy alokacji tylko na podstawie identyfikatora zestawu poleceń. Jeśli zapytanie o informacje o strefie zwróci zerowy rozmiar strefy, przestrzeń nazw ścieżki jest rejestrowana bez limitów zoned, podczas gdy nagłówek nadal reklamuje możliwość zoned z zerowym rozmiarem strefy, co prowadzi do przesunięcia przez ilog2(0).
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

