Podatności Linux kernel
7561 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-93211Nieznane
W jądrze Linux, w serwerze NFS (nfsd), podatność dotyczy kolejności inicjalizacji tablicy haszującej DRC przed rejestracją shrinkera. Na architekturach o słabym porządku pamięci (np. arm64, ppc) może dojść do obserwacji nie zainicjalizowanej tablicy, co prowadzi do dereferencji pustego wskaźnika w wywołaniu zwrotnym shrinkera. Poprawka przenosi inicjalizację przed rejestrację.
- CVE-2026-93209Nieznane
W jądrze Linux w podsystemie Bluetooth funkcja hci_send_cmd_sync() klonowała wysyłane polecenie do hdev->req_skb za pomocą skb_clone(). W warunkach niedoboru pamięci klonowanie mogło się nie powieść, pozostawiając req_skb jako NULL, przez co hci_req_cmd_complete() nie wywoływało hci_cmd_sync_complete() i oczekujący proces kończył się błędem -ETIMEDOUT po 10 sekundach. Problem naprawiono zastępując skb_clone() przez skb_get(), które jedynie zwiększa licznik referencji i nie może zawieść.
- CVE-2026-93208Nieznane
W jądrze Linuxa wykryto wyścig między operacją zmniejszania pamięci podręcznej KASAN a wyłączaniem procesorów. Podczas wyłączania CPU obiekty pozostają w per-CPU liście shrink_qlist i nie są zwracane do alokatora, co powoduje niepełne usuwanie pamięci podręcznej i ostrzeżenia jądra. Problem dotyczy systemów z włączonym KASAN (CONFIG_KASAN_GENERIC).
- CVE-2026-93204Nieznane
W jądrze Linux moduł batman-adv aktualizował adresy MAC za pomocą zwykłego kopiowania, co mogło być częściowo widoczne dla równoległych czytelników. Czytelnik mógł przesłać do sieci niepełny adres MAC lub użyć go w odpowiedziach ARP, zatruwając pamięć podręczną ARP. Poprawka stosuje atomic64_t do przechowywania 48-bitowego adresu MAC, zapewniając, że czytelnik widzi albo stary, albo nowy adres, nigdy mieszankę.
- CVE-2026-93202Nieznane
W jądrze Linux występuje błąd w podsystemie I3C, polegający na rekurencyjnym zakładaniu blokady podczas rejestracji nowych urządzeń I3C. Funkcja i3c_master_register_new_i3c_devs() rejestruje urządzenia, trzymając blokadę i3c_bus_normaluse_lock(), a wywołanie device_register() może natychmiast uruchomić procedurę probe, która ponownie próbuje założyć tę samą blokadę, co prowadzi do zakleszczenia. Problem został rozwiązany poprzez rozdzielenie tworzenia i rejestracji urządzeń oraz użycie blokady konserwacyjnej.
- CVE-2026-93200Nieznane
Podsystem I3C w jądrze Linux miał podatność use-after-free wskaźnika master->this. Wywołania zwrotne atrybutów sysfs używały tego wskaźnika po jego zwolnieniu, co powodowało naruszenie pamięci. Poprawka utrzymuje wskaźnik żywotność aż do momentu zwolnienia urządzenia i resetuje go na ścieżkach błędów.
- CVE-2026-93199Nieznane
W jądrze Linux funkcja i3c_master_search_i3c_dev_duplicate() wyszukująca duplikaty urządzeń I3C może błędnie dopasować samo urządzenie master (master->this), zwracając kontroler jako duplikat. Ponieważ kontroler nie jest urządzeniem docelowym, nie powinien być traktowany jako duplikat. Poprawka wyklucza master->this z dopasowania.
- CVE-2026-93198Nieznane
W jądrze Linux moduł dm-pcache nie waliduje łańcucha dirty_tail przy wczytywaniu. Złośliwy obraz, którego pola na nośniku są uwierzytelniane tylko przez crc32c ze stałym ziarnem, może wskazać dirty_tail na łańcuch ostatnich ksetów, który nigdy się nie kończy, powodując nieskończone ponowne uzbrajanie cache_writeback_fn(). Poprawka dodaje walidację łańcucha dirty_tail przy wczytywaniu z limitem przeskoków.
- CVE-2026-93197Nieznane
W jądrze Linux występuje błąd w mechanizmie memcg, w którym przy odłączaniu cgroup pamięci rozmiary LRU są kopiowane do rodzica zamiast być przenoszone, pozostawiając nieaktualne liczniki w dziecku. Powoduje to, że skaner LRU (lub MGLRU) odczytuje fałszywe rozmiary i wykonuje jałowe pętle skanowania na martwych cgroupach, co prowadzi do zawyżenia limitów i marnowania CPU. W jednym przypadku wykryto liczniki opisujące 476 GiB stron, czyli 1,89x więcej niż fizyczna pamięć hosta.
- CVE-2026-93195Nieznane
W jądrze Linux sterownik drm/bridge synopsys dw-dp inicjalizuje i rejestruje kanał AUX DisplayPort podczas dw_dp_bind(), ale nigdy go nie wyrejestrowuje. Może to prowadzić do wycieków zasobów i/lub use-after-free. Poprawka dodaje brakującą funkcję dw_dp_unbind() umożliwiającą sprzątanie.
- CVE-2026-93194Nieznane
W jądrze Linux w sterowniku drm/rockchip (dw_dp) zasoby rdzeniowe, takie jak kanał AUX DisplayPort, są inicjalizowane i rejestrowane podczas dw_dp_bind(), ale nigdy nie są wyrejestrowywane. Prowadzi to do wycieków pamięci i/lub użycia po zwolnieniu (use-after-free), co widać w raporcie KASAN. Problem został rozwiązany poprzez użycie funkcji dw_dp_unbind() w callbacku unbind() komponentu oraz w ścieżce błędu bind().
- CVE-2026-93193Nieznane
W jądrze Linux sterownik drm/rockchip analogix_dp ma wyciek referencji do węzła OF w rockchip_dp_drm_encoder_enable(), ponieważ of_get_child_by_name() nie wywołuje symetrycznie of_node_put(). Poprawka używa __free(device_node) do automatycznego zarządzania zwalnianiem referencji.
- CVE-2026-93191Nieznane
W jądrze Linux funkcja smack_msg_queue_msgrcv() błędnie sprawdza uprawnienia zadania 'current' zamiast zadania 'target'. W ścieżce optymalizacji pipelined_send() nadawca sprawdza uprawnienia w imieniu odbiorcy, więc nieuprawniony odbiorca może otrzymać wiadomość, naruszając politykę MAC Smack. Poprawka sprawdza uprawnienia zadania 'target'.
- CVE-2026-93188Nieznane
W jądrze Linux sterownik HID roccat używa wartości indeksu profilu pochodzącej z urządzenia (8-bitowej) bez sprawdzenia zakresu, mimo że tablica profili ma tylko 5 elementów. Złośliwe urządzenie USB podające się za Roccat Kone może wysłać zdarzenie przełączenia profilu z wartością poza zakresem, powodując odczyt poza granicami bufora, którego wynik jest ujawniany przez atrybut sysfs actual_dpi.
- CVE-2026-93187Nieznane
W jądrze Linux w komponencie ASoC SOF funkcje sof_ipc4_widget_setup_comp_src() i sof_ipc4_widget_setup_comp_asrc() przy zerowej liczbie formatów wejściowych lub wyjściowych wypisują błąd i przechodzą do etykiety czyszczenia, ale zmienna 'ret' pozostaje równa 0. W efekcie funkcja zwraca sukces, mimo że konfiguracja widgetu faktycznie się nie powiodła.
- CVE-2026-93186Nieznane
W jądrze Linux w komponencie cxl/mbox polecenie CXL_MEM_SEND_COMMAND ogranicza rozmiar wejściowy użytkownika do rozmiaru ładunku skrzynki pocztowej, ale pozostawia nieograniczony rozmiar wyjściowy, który jest następnie używany w kvzalloc(). Duży rozmiar wyjściowy powoduje ogromną alokację, powyżej INT_MAX wywołuje ostrzeżenie i skażenie jądra, a przy panic_on_warn=1 prowadzi do paniki.
- CVE-2026-93185Nieznane
W jądrze Linuxa w sterowniku ASoC rt700-sdw wykryto podatność polegającą na tym, że funkcja rt700_sdw_remove() odprowadza pracę jack_detect_work i jack_btn_check_work tylko wtedy, gdy flaga hw_init jest ustawiona. Flaga ta jest jednak czyszczona podczas odłączenia urządzenia SoundWire, co może prowadzić do pozostawienia aktywnych obiektów pracy i zgłoszenia przez DEBUG_OBJECTS aktywnego timera po usunięciu sterownika.
- CVE-2026-93184Nieznane
W jądrze Linux w komponencie ASoC fsl_audmix po wywołaniu pm_runtime_enable() blok AUDMIX pozostaje wyłączony i zawieszony aż do pierwszego wznowienia. Zapisy do rejestrów wykonywane między probe() a pierwszym wznowieniem trafiają do niewłączonego sprzętu i powodują zawieszenie systemu.
- CVE-2026-93183Nieznane
W jądrze Linux w sterowniku drm/lima funkcja lima_vm_create() jest wywoływana przed ustawieniem va_start i va_end, przez co obie wartości wynoszą 0. Gdy włączone jest DRM_DEBUG_MM, sprawdzenie DRM_MM_BUG_ON w drm_mm_init() wywołuje BUG jądra, co zaobserwowano na exynos4412-odroid-u2.
- CVE-2026-93182Nieznane
W jądrze Linux naprawiono podatność w schedulerze (sched/fair) polegającą na przepełnieniu typu u32 w funkcji update_tg_cfs_runnable(). Przepełnienie prowadzi do korupcji wartości runnable_sum, a w konsekwencji do błędu dzielenia przez zero w propagate_entity_load_avg() i awarii jądra (kernel crash). Problem można wywołać uruchamiając obciążenie takie jak hackbench.
- CVE-2026-93181Nieznane
W jądrze Linux w perf/x86/intel/uncore kolejność wywołań uncore_box_ref()/uncore_box_unref() względem uncore_change_context() jest nieprawidłowa. W uncore_event_cpu_online() uncore_box_ref() jest wywoływane, gdy box->cpu wynosi jeszcze -1, więc box nie jest inicjalizowany przy pierwszym CPU w die, a w ścieżce offline box jest niszczony przy przedostatnim CPU.
- CVE-2026-93180Nieznane
W jądrze Linux w sterowniku drm/panthor występuje błąd dereferencji wskaźnika NULL (NPD) podczas częściowego usuwania mapowania (partial unmap) bufora obiektu (BO), który został wcześniej wyewakuowany (evicted). Gdy strony BO są zwalniane przy ewakuacji, wskaźnik 'bo->backing.pages' jest ustawiany na NULL, a logika obsługi podziału mapowania GPU nie pomijała tego przypadku dla VMA wyewakuowanego BO, co prowadziło do odwołania się do NULL i awarii jądra.
- CVE-2026-93179Nieznane
W jądrze Linux w module drm/amd/powerplay naprawiono błąd w pętli przetwarzającej tablicę VoltageObjectInfo. Złośliwy lub uszkodzony VBIOS mógł dostarczyć tablicę z nieprawidłowym rozmiarem obiektu, co prowadziło do nieskończonej pętli lub odczytu poza granicami bufora sterty.
- CVE-2026-93174Nieznane
W jądrze Linux w podsystemie BPF funkcja copy_map_value_long() nie kopiowała dopełnienia (padding) między map->value_size a round_up(map->value_size, 8) dla map per-CPU. W wyniku tego ścieżki UAPI LOOKUP_ELEM mogły zwracać do przestrzeni użytkownika nieaktualne dane ze sterty.
- CVE-2026-93173Nieznane
W jądrze Linux w podsystemie BPF/LSM wywołanie security_bpf_prog_free() z kontekstu softirq (poprzez __bpf_prog_put_rcu) powodowało błąd "sleeping function called from invalid context", gdy do hooka podłączony był program LSM typu sleepable. Poprawka usuwa bpf_prog_free z sleepable_lsm_hooks.
- CVE-2026-93172Nieznane
W jądrze Linux w mm/mm_init brakowało sprawdzenia nieudanej alokacji pgdat->per_cpu_nodestats w free_area_init_core_hotplug, co prowadziło do dereferencji NULL przy odwołaniu do obszaru per-CPU. Poprawka propaguje -ENOMEM i pozostawia per_cpu_nodestats wskazujący na boot_nodestats.
- CVE-2026-93171Nieznane
W jądrze Linux w sterowniku leds: lp5860 funkcja lp5860_device_init() w przypadku niepowodzenia lp5860_init_dt() zwalniała już zwolniony mutex (double-unlock). Poprawka zmienia sposób pobierania i zwalniania blokady.
- CVE-2026-93169Nieznane
W jądrze Linux w funkcji zynqmp_dma_remove() runtime PM był wyłączany dopiero po sprawdzeniu stanu i ręcznym uśpieniu urządzenia, co może powodować wyścig z runtime PM w ścieżce usuwania/odłączania modułu (rmmod). Poprawka najpierw wyłącza runtime PM, a następnie usypia urządzenie tylko jeśli nie jest już uśpione, aby zapobiec dalszym przejściom stanów runtime PM.
- CVE-2026-93168Nieznane
W jądrze Linux w sterowniku dmaengine xilinx_dma funkcja xilinx_dma_poll_timeout wywoływana z parametrem delay_us=0 powodowała zajęte oczekiwanie CPU przez bardzo długi czas, gdy warunek zakończenia nigdy nie został spełniony. Zamiast przekroczyć limit czasu po około XILINX_DMA_LOOP_COUNT mikrosekund, przekroczenie następowało po kilku minutach, co prowadziło do zablokowania CPU. Poprawka wprowadza stałą XILINX_DMA_POLL_DELAY_US i używa delay_us=10.
- CVE-2026-93167Nieznane
W jądrze Linux ścieżka śledzenia wywołań systemowych przeładowuje argumenty z pt_regs przed wywołaniem handlera. Na C-SKY ABIv2 kod zmienia wskaźnik stosu (sp) przed załadowaniem LSAVE_A4 i LSAVE_A5, przez co odczytywane są niewłaściwe sloty i śledzone wywołania używające 5. lub 6. argumentu (np. mmap2) otrzymują uszkodzone argumenty. Poprawka ładuje a4/a5 z pt_regs przed zmianą sp.
- CVE-2026-93166Nieznane
W jądrze Linux w funkcji rtw89_ppdu_str() sterownika wifi rtw89 użyto porównania '>' zamiast '>=', co może prowadzić do dostępu poza granicami bufora. Poprawka zmienia operator na '>=' aby uniknąć nieprawidłowego dostępu do pamięci.
- CVE-2026-93164Nieznane
W jądrze Linux naprawiono podatność w mechanizmie uprobes na architekturze x86. Zoptymalizowane uprobes mogły nadpisywać obszar redzone stosu użytkownika, ponieważ instrukcja call zapisywała adres powrotny na stosie, podczas gdy kod użytkownika mógł tam przechowywać dane tymczasowe bez korygowania rejestru rsp. Problem rozwiązano, przenosząc zoptymalizowane uprobes z instrukcji nop5 na nop10, co pozwala dodać instrukcję lea korygującą rsp przed wykonaniem call.
- CVE-2026-93163Nieznane
W jądrze Linux funkcja hwrng_register() dodaje rng do globalnej listy rng_list, a następnie może próbować ustawić go jako current_rng. Jeśli ten krok się nie powiedzie, funkcja zwraca błąd, ale nie usuwa rng z listy, co prowadzi do wiszącego odwołania i potencjalnego use-after-free, gdy wywołujący zwolni rng. Poprawka dodaje list_del_init() w celu posprzątania.
- CVE-2026-93162Nieznane
W jądrze Linux sterownik crypto qat kolejkuje pracę ponownego włączenia SR-IOV przy użyciu work_struct i completion osadzonych w strukturze adf_sriov_dev_data na stosie. Jeśli oczekiwanie na completion przekroczy limit czasu, reset worker może powrócić, podczas gdy device_sriov_wq nadal przechowuje lub wykonuje element pracy oparty na stosie. Poprawka anuluje pracę na device_sriov_wq przy przekroczeniu limitu czasu przed rozwinięciem ramki stosu.
- CVE-2026-93161Nieznane
W jądrze Linux funkcja qat_alg_xts_reverse_key() rozwija klucz AES XTS na stosie, a harmonogram klucza zawiera materiał klucza, który może pozostać w ramce stosu. Poprawka czyści tymczasowy crypto_aes_ctx za pomocą memzero_explicit() po skopiowaniu.
- CVE-2026-93160Nieznane
W jądrze Linux sprzętowa ścieżka ECDH w atmel_ecdh_compute_shared_secret() używa klucza prywatnego zapisanego w urządzeniu, ale klucz publiczny jest buforowany dopiero po pomyślnym wygenerowaniu klucza prywatnego przez atmel_ecdh_set_secret() dla bieżącego tfm. Poprawka dodaje sprawdzenie braku buforowanego klucza publicznego, aby zapobiec użyciu klucza prywatnego nie wygenerowanego dla bieżącego tfm.
- CVE-2026-93159Nieznane
W jądrze Linux sterownik crypto: atmel-sha204a nie zwalniał struktury work_data w przypadku niepowodzenia transferu I2C w asynchronicznej ścieżce RNG. Wskaźnik pozostawał w rng->priv, przez co kolejne odczyty mogły interpretować nieaktualny stan jako prawidłowe dane RNG, powodując wyciek informacji ze sterty.
- CVE-2026-93158Nieznane
W jądrze Linux funkcja sa_ul_probe() sterownika crypto: sa2ul ignorowała wynik wywołania sa_init_mem() tworzącego pulę DMA dla buforów kontekstu bezpieczeństwa. W razie niepowodzenia tworzenia puli probe kontynuował konfigurację DMA i rejestrację algorytmów, mimo że późniejsze operacje zależą od tej puli.
- CVE-2026-93157Nieznane
W jądrze Linux funkcja xtrng_readblock32() sterownika hwrng: xilinx-trng zwracała liczbę odczytanych bajtów nawet gdy pierwsze odpytywanie zakończyło się przekroczeniem limitu czasu. Wywołujący traktował zerowy wynik jako krótki, udany odczyt, a częściowe odczyty pełnych 32-bajtowych bloków mogły powodować użycie stałego przesunięcia bloku zamiast rzeczywistej liczby wygenerowanych bajtów.
- CVE-2026-93156Nieznane
W jądrze Linux funkcja rk_hash_run() sterownika crypto: rk3288 oczekiwała, aż RK_CRYPTO_HASH_STS osiągnie stan bezczynności po końcowym transferze DMA, ale ignorowała wynik odpytywania. Jeśli silnik hash nigdy nie stał się bezczynny, sterownik nadal odczytywał rejestry skrótu i kończył żądanie z poprzednią wartością sukcesu.
- CVE-2026-93155Nieznane
W jądrze Linux funkcja register_aes_algs() sterownika crypto: keembay rejestrowała algorytmy AEAD przed algorytmami skcipher. W przypadku niepowodzenia rejestracji skcipher funkcja wycofywała wcześniejszą rejestrację AEAD, przekazując ARRAY_SIZE(algs) (rozmiar tabeli skcipher) zamiast ARRAY_SIZE(algs_aead).
- CVE-2026-93153Nieznane
W jądrze Linux funkcja __wait_for_resp() sterownika RDMA/bng_re ignorowała wygaśnięcie wait_event_timeout(). Jeśli po przekroczeniu limitu czasu i próbie obsługi CREQ slot odpowiedzi pozostawał zajęty, pętla rozpoczynała kolejny pełny okres oczekiwania i mogła powtarzać się w nieskończoność.
- CVE-2026-93152Nieznane
W jądrze Linux funkcja apple_nvme_init_queue() sterownika nvme-apple inicjalizowała stan kolejki, a następnie oznaczała ją jako włączoną. Użycie bariery wmb() po WRITE_ONCE(enabled, true) nie publikowało wcześniejszej inicjalizacji przed ujawnieniem flagi enabled, co mogło powodować wyścig z ścieżkami przerwań i żądań.
- CVE-2026-93150Nieznane
W jądrze Linux zmienna nr_deadline_tasks w strukturze cpuset mogła być modyfikowana jednocześnie przez inc_dl_tasks_cs() pod rq->lock oraz przez cpuset_attach() pod cpuset_mutex. Równoczesne aktualizacje mogły uszkodzić tę zmienną, prowadząc do nieprawidłowych operacji.
- CVE-2026-93149Nieznane
W jądrze Linux w sterowniku mac80211_hwsim występuje podatność polegająca na możliwości przekazania wskaźnika NULL do funkcji ieee80211_free_txskb() podczas zatrzymywania kolejki. Problem wynika z rozdzielenia sprawdzenia pustej kolejki od operacji usunięcia elementu, co jest niebezpieczne przy współbieżnym przetwarzaniu statusu transmisji.
- CVE-2026-93146Nieznane
W jądrze Linux w funkcji proc_timens_set_offset() brakuje walidacji pola tv_nsec, które powinno być w zakresie [0, 999999999]. Nieprawidłowe wartości mogą prowadzić do błędnych obliczeń lub nieoczekiwanego zachowania podczas dodawania czasów.
- CVE-2026-93145Nieznane
W jądrze Linux w sterowniku clk qcom gdsc występuje problem z nieprawidłowym usuwaniem domen genpd podczas odrejestrowania. Funkcja gdsc_unregister() nie wywołuje pm_genpd_remove() dla zarejestrowanych domen, co prowadzi do pozostawienia wpisów na globalnej liście i błędów przy ponownej rejestracji.
- CVE-2026-93143Nieznane
W jądrze Linux w sterowniku staging media ipu7 występuje wyciek referencji licznika pm_runtime w funkcji ipu7_resume(). Użycie pm_runtime_get_sync() bez zbalansowania w przypadku błędu prowadzi do pozostawienia zwiększonego licznika.
- CVE-2026-93142Nieznane
W jądrze Linux w sterowniku termicznym rcar występuje błąd w sprawdzaniu błędów w funkcji probe(). Funkcja thermal_zone_device_enable() jest wywoływana przed sprawdzeniem, czy rejestracja strefy termicznej się powiodła, co może prowadzić do dereferencji wskaźnika błędu.
- CVE-2026-93141Nieznane
W jądrze Linux w sterowniku USB gadget r8a66597 występuje podwójne zwolnienie ep0_req w ścieżce błędu funkcji probe(). Jeśli usb_add_gadget_udc() zawiedzie, ep0_req jest zwalniane dwukrotnie, co może prowadzić do uszkodzenia pamięci.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

