Podatności Linux kernel
7564 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-90035Nieznane
W jądrze Linux funkcja get_estimated_bw() w sterowniku drm/amd/display dzieli przez bw_granularity, które jest zerowane i wypełniane dopiero po obsłużeniu DP_TUNNELING_BW_ALLOC_CAP_CHANGED. Jeśli urządzenie USB4/DPIA zgłosi zmianę szacowanej przepustowości przed zmianą możliwości, w obsłudze przerwania DPCD dochodzi do dzielenia przez zero.
- CVE-2026-90034Nieznane
W jądrze Linux sterownik usb image mdc800 używa kmalloc() do buforów irq_urb_buffer i download_urb_buffer w usb_mdc800_init(). Przy krótszej wiadomości w mdc800_usb_irq() lub mdc800_usb_download_notify() może dojść do wycieku danych ze stosu.
- CVE-2026-90033Nieznane
W jądrze Linux funkcja snd_usbmidi_us122l_output() w ALSA usb-audio wybiera rozmiar 2 dla prędkości niższej niż high speed, nie odnosząc go do ep->max_transfer. Przy urządzeniu z jednobajtowym endpointem bulk memset oblicza 1 - 2 w int i zawija do SIZE_MAX, powodując zapis poza buforem.
- CVE-2026-90024Nieznane
W jądrze Linux występuje podatność polegająca na dereferencji wskaźnika NULL w funkcji f_midi2_free_ep_reqs() w module USB gadget MIDI 2.0. Gdy konfiguruje się gadget MIDI 2.0 przez configfs z kierunkiem bloku ustawionym na SNDRV_UMP_DIR_INPUT, endpoint midi1_ep_out nie jest inicjalizowany, a jego pole usb_ep->card pozostaje NULL. Późniejsza zmiana alternate setting przez hosta powoduje wywołanie f_midi2_free_ep_reqs() dla niezainicjalizowanego endpointu i crash jądra.
- CVE-2026-90022Wysokie
W jądrze Linux w funkcji f_midi2_opts_str_show() sterownika USB gadget występuje use-after-free. Wywołujący odczytują wskaźnik opts->info.<pole> przed założeniem blokady, co wyściguje się z f_midi2_opts_str_store(), która zwalnia stary łańcuch pod blokadą. Współbieżny zapis atrybutu może spowodować odczyt zwolnionego wskaźnika.
- CVE-2026-90021Nieznane
W jądrze Linux w f_midi_alloc() struktura work nie jest inicjalizowana, jeśli f_midi_bind() nigdy nie zostanie wywołane. Wówczas warunek w f_midi_free staje się prawdziwy, co prowadzi do ostrzeżenia w __flush_work z powodu work->func = 0. Poprawka przenosi INIT_WORK z f_midi_bind() do f_midi_alloc().
- CVE-2026-90020Nieznane
W jądrze Linux funkcja gadget_dev_ioctl() odczytuje dev->gadget przed założeniem blokady dev->lock, a stan dev->state sprawdza po jej założeniu. Współbieżne bind może zmienić stan urządzenia, pozostawiając nieaktualny wskaźnik NULL gadget i powodując dereferencję NULL w gadget->ops->ioctl.
- CVE-2026-90019Nieznane
W jądrze Linux funkcja usb_put_function_instance() próbuje dereferencjonować fd wewnątrz struktury fi w ścieżce błędu uvc_alloc_inst(). Jednak fd nie jest alokowane aż do późniejszego try_get_usb_function_instance(), więc w ścieżce błędu jest zawsze NULL. Poprawka dodaje sprawdzenie NULL dla fi->fd.
- CVE-2026-90017Wysokie
W jądrze Linux w sterowniku staging rtl8723bs funkcja rtw_action_frame_parse() nie sprawdza parametru frame_len przed indeksowaniem ciała ramki. Odczyt frame_body[0] i frame_body[1] wymaga frame_len >= 26, więc krótsza ramka (np. 24 bajty) powoduje odczyt poza zakresem o 1-2 bajty. Jest to osiągalne z rtw_cfg80211_monitor_if_xmit_entry() i cfg80211_rtw_mgmt_tx().
- CVE-2026-90016Wysokie
W jądrze Linux w sterowniku staging rtl8723bs funkcja rtw_restruct_wmm_ie() skanuje bufor in_ie w poszukiwaniu WMM IE. Gdy sprawdzenie 'i + 5 < in_len' zawiedzie blisko końca bufora, wykonanie przechodzi do 'i += (in_ie[i + 1] + 2)', co przy i == in_len - 1 powoduje odczyt poza zakresem o 1 bajt. Poprzednia poprawka dodała zabezpieczenie tylko do warunku dopasowania, nie do przesunięcia.
- CVE-2026-90014Wysokie
W jądrze Linux nowe pliki show_event_filters i show_event_triggers nie pobierają referencji do trace_array, który wyświetlają. Bez tej referencji trace_array może zostać zwolniony przez 'rmdir' podczas odczytu pliku, co powoduje use-after-free. Poprawka sprawia, że otwarcie obu plików pobiera referencję przez trace_array_get().
- CVE-2026-90013Wysokie
W jądrze Linux wykryto podatność use-after-free w mechanizmie tracingu. Otwarcie pliku opcji nie zwiększało referencji do struktury trace_array, co mogło prowadzić do użycia zwolnionej pamięci, gdy jeden proces otwierał plik, a inny usuwał instancję. Problem rozwiązano przez dodanie funkcji trace_array_options_get(), która zwiększa referencję przed użyciem.
- CVE-2026-90010Wysokie
W jądrze Linux w podsystemie scsi bsg funkcja ukończenia kopiuje scmd->sense_len do bufora odpowiedzi użytkownika bez uwzględnienia max_response_len. Po prawidłowym sense midlayer ustawia sense_len na rzeczywistą długość (do SCSI_SENSE_BUFFERSIZE), co powoduje przepełnienie mniejszego bufora użytkownika.
- CVE-2026-90009Wysokie
W jądrze Linux w podsystemie scsi bsg funkcja scsi_bsg_uring_cmd() odczytuje bsg_uring_cmd ze współdzielonego mmap'd SQE, co pozwala użytkownikowi zmienić pole między sprawdzeniem a użyciem (TOCTOU). request_len może wzrosnąć poza sizeof(scmd->cmnd) po sprawdzeniu granic i przepełnić scmd->cmnd w copy_from_user().
- CVE-2026-90007Wysokie
W jądrze Linux w sterowniku scsi pm8001 funkcja pm8001_request_msix() przy niepowodzeniu request_irq() używa indeksu i zamiast j w pętli wycofywania, co powoduje przekazanie błędnej pary IRQ/dev_id do free_irq(). Wcześniej zarejestrowane handlery pozostają zainstalowane.
- CVE-2026-90006Nieznane
W jądrze Linux w samples/damon/mtier funkcja damon_sample_mtier_stop() zakłada, że damon_stop() zawsze się powiedzie i zwalnia konteksty DAMON po wywołaniu. Jeśli kontekst jest już zatrzymany, damon_stop() zwraca błąd, pozostawiając działające konteksty, co prowadzi do use-after-free. Problem dotyczy tylko mtier.
- CVE-2026-90005Nieznane
W jądrze Linux w module przykładowym samples/damon/wsse funkcja damon_sample_wsse_start() nie zwalniała pamięci kontekstu DAMON w przypadku niepowodzenia wywołania damon_start(). Prowadzi to do wycieku pamięci, a w szerszym zakresie podobne błędy w obsłudze damon_start() i damon_stop() w modułach przykładowych DAMON mogą powodować zakłócenia kolejnych operacji DAMON oraz use-after-free.
- CVE-2026-90004Nieznane
W jądrze Linux w mm/damon/core funkcja damon_apply_min_nr_regions() zakłada, że damon_split_region_at() zawsze się powiedzie. Przy niepowodzeniu alokacji pamięci i gdy region był ostatni, pobranie następnego regionu zwraca nieprawidłowy wskaźnik, co prowadzi do nieprawidłowego odwołania do pamięci i korupcji. Poprawka przerywa pętle przy każdym niepowodzeniu podziału.
- CVE-2026-90003Wysokie
W jądrze Linux występuje błąd use-after-free w mechanizmie futex podczas operacji requeue PI na jądrze z włączonym PREEMPT_RT. Wyścig między wczesnym wybudzeniem oczekującego wątku a operacją requeue PI może spowodować, że zadanie requeue wywoła rcuwait_wake_up() na strukturze futex_q, która została już zwolniona ze stosu wątku oczekującego. Problem został rozwiązany poprzez pominięcie rcuwait_wake_up() w przypadku stanu Q_REQUEUE_PI_LOCKED.
- CVE-2026-90002Wysokie
W jądrze Linux występuje błąd use-after-free w podsystemie ftrace. Pliki set_ftrace_filter i set_ftrace_notrace dla instancji trace_array używają wskaźnika ftrace_ops z inode->private, który może zostać zwolniony równolegle przez rmdir instancji, co prowadzi do odwołania do zwolnionej pamięci i awarii jądra.
- CVE-2026-90001Wysokie
W jądrze Linux w mechanizmie HID BPF występuje wyścig (race condition) między ścieżką niszczenia urządzenia (__hid_bpf_ops_destroy_device) a wyrejestrowaniem (hid_bpf_unreg), które mogą zwolnić to samo odwołanie do urządzenia dwukrotnie. Prowadzi to do zwolnienia struktury hid_device, podczas gdy funkcja hid_destroy_device() wciąż z niej korzysta, co skutkuje użyciem zwolnionej pamięci (use-after-free). Poprawka serializuje decyzję o zwolnieniu odwołania pod blokadą prog_list_lock.
- CVE-2026-90000Wysokie
W jądrze Linux w sterowniku HID RMI wykryto podatność prowadzącą do odczytu i zapisu poza przydzielonym buforem (OOB). Sterownik alokuje bufory na podstawie rozmiaru raportów zadeklarowanych przez urządzenie, ale bez minimalnego limitu, a następnie zapisuje i odczytuje dane pod stałymi offsetami, co może prowadzić do naruszenia pamięci. Dodatkowo pętla odczytu może się zapętlić, gdy urządzenie odpowiada zerową długością, blokując wątek probe.
- CVE-2026-89998Wysokie
W jądrze Linux występuje wyścig (race condition) w podsystemie device-mapper podczas jednoczesnego ładowania i zwalniania tabeli. Funkcja dm_setup_md_queue przechodzi po liście &md->table_devices bez blokady, co przy równoległym dm_table_destroy może prowadzić do dostępu do nieprawidłowej pamięci.
- CVE-2026-89997Wysokie
W jądrze Linux występuje wyścig (race condition) w podsystemie device-mapper między operacjami resume i remove. Jeśli użytkownik jednocześnie wywoła ioctl resume i remove, urządzenie może zostać wznowione po zawieszeniu w __dm_destroy, przez co tabela jest niszczona bez wywołania metody postsuspend, co łamie oczekiwania celów dm i może prowadzić do use-after-free (np. w dm-integrity).
- CVE-2026-89996Nieznane
W jądrze Linux w interfejsie dma-heap (DMA_HEAP_IOCTL_ALLOC) deskryptor pliku dma-buf był publikowany w tablicy deskryptorów procesu przed zakończeniem kopiowania wyniku do przestrzeni użytkownika. Jeśli końcowe copy_to_user() kończyło się niepowodzeniem, deskryptor pozostawał widoczny dla innych wątków i wyciekał na cały czas życia procesu. Problem naprawiono, zmieniając kolejność operacji tak, aby instalacja deskryptora była ostatnim, niepodlegającym błędowi krokiem.
- CVE-2026-89995Wysokie
W jądrze Linux funkcja dma_direct_alloc_from_pool() zwraca adres CPU zamiast wskaźnika struct page *, co jest niezgodne z oczekiwaniami funkcji dma_direct_alloc_pages(). Błąd wynika ze zmiany wprowadzonej w commicie 5b138c534fda i może prowadzić do nieprawidłowego działania lub awarii.
- CVE-2026-89994Wysokie
W jądrze Linux sterownik dmaengine fsl-edma w zdarzeniach tracingu przechowuje wskaźnik do struct fsl_edma_engine i dereferencjonuje go przy wypisywaniu wpisu logu, gdy wskaźnik może już być nieprawidłowy. Iniekcja zdarzeń (np. przez plik inject) może wywołać awarię jądra.
- CVE-2026-89993Nieznane
W jądrze Linux sterownik dmaengine dw-edma przekazuje struct dw_edma_irq do request_irq() przed ustawieniem wskaźnika zwrotnego przez dw_edma_channel_setup(). Współdzielone przerwanie może wejść do handlera, gdy dw_irq->dw jest jeszcze NULL, powodując dereferencję wskaźnika NULL.
- CVE-2026-89992Wysokie
W jądrze Linux funkcja dt_idle_pd_alloc() przydziela pamięć na pełną ścieżkę węzła, a następnie ustawia pd->name na wskaźnik do basename() tej ścieżki. Funkcja dt_idle_pd_free() zwalnia pd->name, który nie wskazuje już na początek alokacji, co prowadzi do nieprawidłowego zwolnienia pamięci.
- CVE-2026-89991Nieznane
W jądrze Linux naprawiono błąd w mechanizmie pcpu_freelist BPF, który powodował nieskończoną pętlę w funkcji __pcpu_freelist_push(). Problem występuje, gdy system ma tylko jeden możliwy CPU (np. CONFIG_SMP=n, nr_cpus=1 lub possible_cpus=1), a przerwanie NMI ponownie wchodzi do pcpu_freelist_push() w momencie, gdy przerwany kontekst trzyma blokadę freelisty tego CPU. Pętla awaryjna nie ma wtedy żadnego innego CPU do sprawdzenia i nigdy nie może zdobyć blokady.
- CVE-2026-89989Nieznane
W jądrze Linux funkcja validate_hash_algo() przekazuje wynik dentry_path() bezpośrednio do integrity_audit_msg() bez sprawdzenia, czy nie jest to ERR_PTR. Gdy ścieżka przekracza bufor, dentry_path() zwraca ERR_PTR(-ENAMETOOLONG), co prowadzi do wywołania strlen() na nieprawidłowym wskaźniku i błędu strony.
- CVE-2026-89988Wysokie
W jądrze Linux funkcja __within_kprobe_blacklist() przegląda listę kprobe_blacklist bez trzymania kprobe_mutex. Gdy moduł jest usuwany, wpisy są natychmiast zwalniane, co może prowadzić do użycia po zwolnieniu (use-after-free) w równoczesnym wywołaniu within_kprobe_blacklist().
- CVE-2026-89987Nieznane
W jądrze Linuxa wykryto podatność w obsłudze ogromnych stron pamięci (huge pages) dla systemu plików tmpfs. Podczas usuwania mapowania (zap) bit dirty z wpisu PMD nie jest przenoszony do folio, co prowadzi do utraty informacji o zapisie danych. W rezultacie dane w segmentach MAP_SHARED tmpfs mogą zostać cicho utracone podczas odmapowania, jeśli strona jest zmapowana jako PMD i włączony jest swap.
- CVE-2026-89986Wysokie
W jądrze Linux funkcja alloc_pages_bulk_weighted_interleave() używa flagi GFP_KERNEL podczas alokacji tablicy wag, nawet gdy jest wywoływana w kontekście atomowym/RCU. Może to prowadzić do wywołania funkcji usypiającej w nieprawidłowym kontekście i ostrzeżenia might_alloc().
- CVE-2026-89985Wysokie
W jądrze Linux funkcja memcg_reparent_objcgs() zakłada, że objcg folio jest zgodny z węzłem folio. Migracja folio między węzłami łamie to założenie, prowadząc do niespójności i potencjalnego użycia niewłaściwej blokady LRU, co może skutkować uszkodzeniem danych lub awarią.
- CVE-2026-89984Nieznane
W jądrze Linux występuje luka w module perf/x86/intel, która pozwala na wyciek adresów jądra do przestrzeni użytkownika. Funkcja intel_pmu_lbr_filter() nie sprawdzała w pełni poziomu uprawnień próbkowanych wpisów, przez co stos LBR mógł zawierać adresy jądra nawet przy filtrze PERF_SAMPLE_BRANCH_USER. Poprawka rozszerza filtrowanie programowe o weryfikację zarówno adresu źródłowego, jak i docelowego względem br_sel.
- CVE-2026-89983Nieznane
W jądrze Linux funkcja i2c_del_adapter() zwalnia katalog debugfs adaptera przed wyrejestrowaniem urządzenia, ale atrybut new_device pozostaje zapisywalny. Wyścig między zapisem a usunięciem może prowadzić do użycia po zwolnieniu (use-after-free) w i2c_device_probe().
- CVE-2026-89982Nieznane
W jądrze Linuxa w podsystemie i2c mux występuje wyciek referencji do węzła Device Tree podczas nieudanej rejestracji adaptera. Funkcja i2c_mux_add_adapter() pobiera referencję do węzła kanału przed rejestracją, ale w przypadku błędu nie zwalnia jej, co prowadzi do wycieku pamięci.
- CVE-2026-89981Nieznane
W jądrze Linuxa dla architektury arm64 występuje problem z odczytem rejestru GMID_EL1, gdy funkcja MTE jest wyłączona. Odczyt jest wykonywany nawet wtedy, gdy MTE jest wyłączone, co w środowisku pKVM prowadzi do błędu Undefined instruction i paniki jądra.
- CVE-2026-89980Wysokie
W jądrze Linuxa w sterowniku ALSA harmony występuje problem z inicjalizacją zamków (locków) przed rejestracją przerwania. Rejestracja IRQ odbywa się przed inicjalizacją h->lock i h->mixer_lock, co może prowadzić do użycia niezainicjalizowanych zamków przez procedurę obsługi przerwań.
- CVE-2026-89979Wysokie
W jądrze Linux występuje wyścig (race condition) między nieatomowymi operacjami ALSA PCM (hw_params, hw_free, prepare) a atomową operacją trigger-start. Podczas gdy jeden wątek wykonuje operację nieatomową, inny wątek może uruchomić strumień PCM, co prowadzi do niespójności stanu i ostrzeżeń ODEBUG zgłaszanych przez syzkaller. Poprawka blokuje trigger-start w trakcie trwania operacji nieatomowych poprzez sprawdzenie wartości runtime->buffer_accessing.
- CVE-2026-89978Nieznane
W jądrze Linuxa w akceleratorze amdxdna występuje problem z operacją SYNC_BO o zerowej długości. Żądanie zerowej liczby bajtów prowadzi do wywołania funkcji drm_clflush_virt_range(), która wykonuje operację na adresie przed mapowaniem, powodując błąd strony i awarię systemu.
- CVE-2026-89977Nieznane
W jądrze Linuxa w akceleratorze ethosu występuje problem z brakiem sprawdzenia błędów mapowania MMIO podczas inicjalizacji. Funkcja devm_platform_ioremap_resource() może zwrócić wskaźnik błędu, który jest następnie używany bez sprawdzenia, co prowadzi do awarii.
- CVE-2026-89976Nieznane
W jądrze Linuxa w akceleratorze ethosu występuje problem z czyszczeniem płotka (fence) po zakończeniu zadania. W niektórych ścieżkach błędów płotek nie jest inicjalizowany, a następnie zwalniany, co prowadzi do wycieku pamięci lub użycia niezainicjalizowanych danych.
- CVE-2026-89975Nieznane
W jądrze Linuxa w podsystemie nvme-fabrics występuje wyciek sekretu DHCHAP podczas nieudanego parsowania opcji. Funkcja nvmf_parse_options() duplikuje sekret przed walidacją, a w przypadku błędu nie zwalnia tymczasowego łańcucha, co prowadzi do wycieku pamięci.
- CVE-2026-89974Wysokie
W jądrze Linuxa w podsystemie nvme-fc występuje podwójne zwolnienie pamięci opcji fabrics, gdy funkcja nvme_add_ctrl() zakończy się niepowodzeniem. Błąd został wprowadzony przez commit 1a9e218195a5 i może być wywołany przy braku pamięci lub wstrzykiwaniu błędów, prowadząc do użycia po zwolnieniu (use-after-free).
- CVE-2026-89973Wysokie
W jądrze Linux w funkcji nvme_tcp_handle_c2h_data() brakowało sprawdzenia kierunku danych dla PDU typu C2HData. Złośliwy lub błędnie działający kontroler NVMe/TCP mógł odpowiedzieć na polecenie zapisu ramką C2HData, co prowadziło do ostrzeżenia jądra (WARN_ON_ONCE) i zresetowania kontrolera. Nie dochodzi do uszkodzenia pamięci, ponieważ żadne dane nie są kopiowane.
- CVE-2026-89971Wysokie
W jądrze Linux występuje luka w obsłudze błędów w sterowniku NVMe. Funkcja nvme_update_ns_info_block() sprawdza tylko ujemne kody błędów, pomijając dodatnie kody statusu NVMe zwracane przez nvme_query_zone_info(). Gdy urządzenie, firmware lub cel NVMe-oF nie wykona polecenia Identify, konfiguracja jest kontynuowana z wyzerowanymi informacjami o strefach, co prowadzi do przesunięcia o ujemny wykładnik (shift-out-of-bounds) i dalszego przesyłania I/O do kolejki strefowej z zerowym rozmiarem strefy.
- CVE-2026-89968Wysokie
W jądrze Linuxa wykryto podatność w podsystemie nvmet-tcp. Serwer NVMe-over-TCP akceptuje niechciane pakiety H2CData bez sprawdzenia, czy wysłano żądanie R2T dla danego polecenia. Zdalny atakujący może to wykorzystać, powodując podwójne dodanie polecenia do listy odpowiedzi, co prowadzi do zawieszenia systemu (soft-lockup) lub paniki jądra (kernel BUG).
- CVE-2026-89967Wysokie
W jądrze Linux funkcje migrate_device_range() i migrate_device_pfns() czyszczą wpisy po złożonym folio bez ograniczenia ich liczby do rozmiaru tablicy npages. Jeśli złożone folio wykracza poza koniec zakresu podanego przez wywołującego, pętle powodują zapis poza granicami tablicy.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

