Podatności Linux kernel
10 407 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-89754Wysokie
W jądrze Linux występuje błąd w mechanizmie mm/pagewalk, gdzie nieprawidłowo ustawiona wartość walk->action (ACTION_AGAIN) nie jest resetowana po wyczyszczeniu wpisu PMD. Prowadzi to do wielokrotnego wywoływania callbacków i w konsekwencji do zapisu poza zakresem pamięci (out-of-bounds write), co zostało wykryte przez KASAN w funkcji __mincore_unmapped_range.
- CVE-2026-89753Niskie ryzyko· EPSS 7%
W jądrze Linux pętla skanująca w shrink_lruvec() wywołuje jedynie cond_resched(), które na jądrach z PREEMPTION jest no-opem. W efekcie zadanie odzyskujące pamięć nigdy nie zgłasza stanu quiescent dla Tasks-RCU i staje się holdoutem, powodując stalle rcu_tasks podczas reclaimu.
- CVE-2026-89752Niskie ryzyko· EPSS 7%
W jądrze Linux kernfs serializuje operacje na plikach tylko per otwarty plik, więc równoległe zapisy do memory.high lub memory.max mogą się nakładać. Jeśli inny zapisujący podniesie lub usunie limit, pierwszy zapisujący może kontynuować reclaim do nieaktualnego celu, a w przypadku memory.max pętlić się w nieskończoność i wielokrotnie zwiększać licznik zdarzeń OOM.
- CVE-2026-89751Niskie ryzyko· EPSS 6%
W architekturze x86 obsługa I/O portów w TDX (funkcje handle_in() i handle_out()) używa maski GENMASK(BITS_PER_BYTE * size, 0), która zawiera bit górny. Dla size=1 daje to 9-bitową maskę 0x1FF zamiast 8-bitowej 0xFF, przez co maska jest o jeden bit za szeroka dla wszystkich rozmiarów I/O.
- CVE-2026-89750Wysokie
W jądrze Linux funkcja dup_task_struct() kopiuje user_event_mm z rodzica do dziecka bez pobrania referencji. Jeśli user_event_mm_alloc() zawiedzie, user_event_mm_dup() pozostawia skopiowany wskaźnik, a przy zakończeniu dziecka user_event_mm_remove() zmniejsza referencję, której dziecko nigdy nie posiadało, co prowadzi do use-after-free (UAF).
- CVE-2026-89749Niskie ryzyko· EPSS 11%
W jądrze Linux funkcja event_test_stuff() wywołuje kthread_run() i bezwarunkowo przekazuje zwrócony wskaźnik task_struct do kthread_stop(). Gdy utworzenie wątku zawiedzie (np. przy braku pamięci podczas autotestu przy starcie), kthread_run() zwraca wskaźnik błędu ERR_PTR(-ENOMEM), a kthread_stop() dereferencjonuje nieprawidłowy wskaźnik, powodując awarię jądra.
- CVE-2026-89748Wysokie
W jądrze Linux funkcja simple_ring_buffer_swap_reader_page() rozpoczyna z retry równym 8 i zmniejsza je dopiero po nieudanej wymianie linku. Na ostatniej próbie udana wymiana pozostawia retry na zero, a nieudana na -1, przez co test !retry odwraca oba wyniki i może uszkodzić ring buffer.
- CVE-2026-89747Wysokie
W jądrze Linux zapis do buffer_subbuf_size_kb wywołuje ring_buffer_subbuf_order_set(), która zwalnia wszystkie podbufory ring buffera, w tym stronę czytnika. Czytelnicy trace_pipe trzymają wskaźniki do tych stron, a ring_buffer_peek() zwraca wskaźnik zdarzenia po zwolnieniu blokady, co przy zmianie kolejności podbufora w tym oknie prowadzi do use-after-free.
- CVE-2026-89746Wysokie
W jądrze Linux występuje podatność use-after-free w mechanizmie śledzenia (tracing) przy rejestrowaniu dwóch triggerów hist o tej samej nazwie (name=) na różnych zdarzeniach. Drugi trigger ponownie wykorzystuje pierwszy jako named_data, ale jego wpis w liście tr->hist_vars nie jest usuwany, co pozostawia wiszący wskaźnik do zwolnionej struktury hist_data. Późniejsze użycie zmiennej w kolejnym triggerze hist powoduje dereferencję zwolnionej pamięci i panikę jądra.
- CVE-2026-89745Niskie ryzyko· EPSS 9%
W jądrze Linux mechanizm blokady integralności (lockdown) w debugfs nie obejmował operacji mmap_prepare, a jedynie mmap. W efekcie pliki korzystające z mmap_prepare mogły omijać blokadę, gdy jądro pracowało w trybie integralności.
- CVE-2026-89744Wysokie
W jądrze Linux funkcja fwnode_for_each_child_node() może wejść w nieskończoną pętlę, gdy iteruje po dzieciach fwnode posiadającego drugorzędny fwnode z więcej niż jednym dzieckiem. Powoduje to wielokrotne zwracanie tych samych węzłów zamiast zakończenia iteracji.
- CVE-2026-89743Wysokie
W jądrze Linux funkcja nsm_sendrecv_msg_locked() zapisuje długość raportowaną przez urządzenie NSM bez ograniczenia jej do rozmiaru bufora odpowiedzi. Złośliwe lub błędne urządzenie może zgłosić zbyt dużą długość, co prowadzi do odczytu poza zakresem bufora i ujawnienia sąsiedniej pamięci sterty jądra.
- CVE-2026-89742Wysokie
W jądrze Linux funkcja dma_req_free() w RapidIO mport_cdev zwalnia referencję do mapowania przez kref_put(), a następnie ponownie używa wskaźnika req->map do odblokowania mutexa. Jeśli kref_put() zwolni ostatnią referencję, obiekt zostaje zwolniony i następuje użycie po zwolnieniu (use-after-free).
- CVE-2026-89741Wysokie
W jądrze Linux wycofano wcześniejszą poprawkę obsługi błędów w __video_register_device(), ponieważ powodowała podwójne zwolnienie pamięci. Interfejs V4L2 wymaga wywołania video_device_release() po niepowodzeniu rejestracji, ale put_device() już zwalniał strukturę.
- CVE-2026-89740Niskie ryzyko· EPSS 11%
W jądrze Linux sterownik serial: imx publikuje port w tablicy imx_uart_ports[] przed uart_add_one_port(), a wpis nie jest czyszczony przy niepowodzeniu dodania lub po usunięciu. Powstaje wiszący wskaźnik, przez który sąsiedni probe może zarejestrować współdzieloną konsolę.
- CVE-2026-89739Niskie ryzyko· EPSS 10%
W jądrze Linux występuje podatność use-after-free w sterowniku USB dwc3 (tryb gadget). Funkcja dwc3_gadget_free_endpoints zwalnia pamięć struktury dep, podczas gdy zakolejkowana praca opóźniona nostream_work może nadal być w trakcie wykonywania i odwoływać się do zwolnionej pamięci. Problem rozwiązano poprzez anulowanie pracy opóźnionej przed zwolnieniem pamięci.
- CVE-2026-89738Wysokie
W jądrze Linux w sterowniku USB gadget at91_udc, w trybie odpytywanego VBUS, timer i powiązany work item nie były zatrzymywane przed zwolnieniem struktury udc. Prowadziło to do użycia zwolnionej pamięci (use-after-free) podczas normalnego odłączenia sterownika lub błędu probe.
- CVE-2026-89737Niskie ryzyko· EPSS 10%
W jądrze Linux funkcja tbt_altmode_remove() zwalnia referencje plug i cable bez wstrzymania tbt->work. Funkcja robocza używa tych referencji i może się ponownie zakolejkować, a callbacki VDM mogą kolejkować ten sam element pracy.
- CVE-2026-89736Wysokie
W jądrze Linux w funkcji g_audio_cleanup() sterownika USB gadget u_audio występuje use-after-free. Funkcja snd_card_free_when_closed() zwraca asynchronicznie, a struktura snd_uac_chip jest zwalniana natychmiast, podczas gdy uchwyty ALSA (kctls) pozostają otwarte w przestrzeni użytkownika. Dostęp do tych uchwytów powoduje dereferencję zwolnionej pamięci.
- CVE-2026-89735Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku USB gadget midi2 funkcja f_midi2_alloc_inst() tworzy domyślne grupy configfs, ale podczas demontażu funkcji lub czyszczenia EP nie jest wywoływane configfs_remove_default_groups(). Prowadzi to do wycieku pamięci struktur f_midi2_ep_opts i f_midi2_block_opts.
- CVE-2026-89734Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku USB gadget uvc funkcja uvcg_video_init() przy niepowodzeniu kthread_run_worker() loguje błąd używając wskaźnika video->uvc, który nie jest jeszcze przypisany. Powoduje to dereferencję null pointera.
- CVE-2026-89733Wysokie
W jądrze Linux w sterowniku USB gadget uvc funkcje uvc_function_bind() i uvc_function_unbind() pozostawiają wiszące wskaźniki uvc->control_req i uvc->control_buf po zwolnieniu. Prowadzi to do use-after-free.
- CVE-2026-89732Niskie ryzyko· EPSS 13%
W jądrze Linux w funkcji ffs_ep0_read() interfejsu USB gadget FunctionFS występował zakleszczenie (deadlock). Funkcja zasypiała z trzymanym muteksem ffs->mutex, co przy jednoczesnym demontażu gadżetu przez configfs (np. echo "" > UDC) i pętli read() demona przestrzeni użytkownika prowadziło do trwałego zakleszczenia. Poprawka zwalnia muteks przed snem i używa wait_event_interruptible_exclusive().
- CVE-2026-89731Wysokie
W jądrze Linux funkcja cxl_rch_get_aer_info() odczytuje rejestry AER poza mapowanym blokiem, ponieważ sizeof(struct aer_capability_regs) jest większy niż fizyczny rozmiar możliwości AER. Nadmiarowy odczyt może dodatkowo spowodować drugi out-of-bounds w pcie_print_tlp_log().
- CVE-2026-89730Niskie ryzyko· EPSS 11%
W jądrze Linux w sterowniku fpga altera-cvp funkcja altera_cvp_send_block() dereferencjonuje wskaźnik u32 nawet gdy w buforze pozostaje tylko 1-3 bajty. Może to spowodować odczyt poza zakresem, jeśli bufor kończy się na granicy strony lub scatterlist.
- CVE-2026-89729Wysokie
W jądrze Linux w sterowniku HID sensor-hub funkcja sensor_hub_get_feature() ogranicza wartość zwracaną, ale pętla kopiowania nadal kopiuje field->report_size / 8 bajtów na wartość. Złośliwy deskryptor HID może spowodować out-of-bounds write, gdy wywołujący IIO dostarczy mały bufor.
- CVE-2026-89728Niskie ryzyko· EPSS 9%
W jądrze Linux w sterowniku i3c renesas funkcja obliczająca maskę nowo wykrytych urządzeń nie uwzględnia przypadku pustej magistrali. Gdy magistrala jest pusta, pole długości danych zawiera maksymalną liczbę urządzeń (8), co prowadzi do dostępu poza zakresem.
- CVE-2026-89727Niskie ryzyko· EPSS 9%
W jądrze Linux w KVM arm64 GICv2 funkcja vgic_v2_deactivate() przekazuje INTID zapisany przez gościa do GICV_DIR bezpośrednio do vgic_get_vcpu_irq() i traktuje nieudane wyszukanie jako niemożliwe, wywołując WARN_ON_ONCE(). Gość może to wywołać dowolnie, powodując panikę hosta z panic_on_warn.
- CVE-2026-89726Niskie ryzyko· EPSS 7%
W jądrze Linux funkcja ucs2_strnlen() w lib/ucs2_string.c sprawdza bieżący znak przed sprawdzeniem, czy osiągnięto maksymalną długość podaną przez wywołującego. Jeśli dane wejściowe nie są zakończone znakiem NUL w tym zakresie, pętla może odczytać jeden element ucs2_char_t poza limitem, powodując odczyt poza granicami bufora o jeden bajt.
- CVE-2026-89725Wysokie
W jądrze Linux sterownik media: cec: stm32 w funkcji stm32_rx_done() dopisuje każdy odebrany bajt CEC do rx_msg.msg[] używając rx_msg.len jako indeksu, bez sprawdzania go względem rozmiaru bufora. Bufor rx_msg.msg[] ma stały rozmiar CEC_MAX_MSG_SIZE (16) bajtów, a liczba bajtów przed RXEND jest kontrolowana przez zdalne urządzenie CEC, co pozwala na zapis poza granicami bufora.
- CVE-2026-89724Wysokie
W jądrze Linux sterownik media: vicodec w funkcji fwht_encode_frame() koduje jedną płaszczyznę na komponent, a niekompresowalna płaszczyzna trafia na ścieżkę FWHT_FRAME_UNENCODED kopiując płaszczyznę dosłownie. Dla formatu 4-komponentowego wszystkie cztery płaszczyzny są w pełnej rozdzielczości, więc ramka wymuszająca fallback zapisuje więcej bajtów niż rozmiar bufora, powodując zapis poza granicami o coded_w * coded_h.
- CVE-2026-89723Wysokie
W jądrze Linux naprawiono błąd przepełnienia bufora (slab-out-of-bounds) w funkcji nilfs_direct_propagate() systemu plików nilfs2. Po obcięciu pliku blok węzła B-drzewa pozostawał w pamięci podręcznej w stanie zabrudzonym, a następnie był błędnie przetwarzany jako wpis mapowania bezpośredniego, co powodowało nieprawidłowy dostęp do pamięci. Problem rozwiązano poprzez dodanie operacji nilfs_btree_discard() usuwającej osierocony blok węzła podczas konwersji mapowania.
- CVE-2026-89722Niskie ryzyko· EPSS 10%
W jądrze Linux naprawiono podatność w funkcji pci_write_legacy_io() w podsystemie PCI/sysfs. Funkcja odczytywała bezwarunkowo 4 bajty z bufora zapisu kernfs, nawet gdy użytkownik zapisał tylko 1 lub 2 bajty, co powodowało odczyt poza granicami przydzielonej pamięci (slab-out-of-bounds). Dodatkowo na platformie PowerPC (little-endian, POWER8 i nowsze) przesunięcia bajtów powodowały zapis nieprawidłowego bajtu poza zakresem.
- CVE-2026-89721Niskie ryzyko· EPSS 10%
W jądrze Linux sterownik phy: rockchip-samsung-dcphy ma nieprawidłową wartość max_register ustawioną na 0x10000, podczas gdy blok rejestrów PHY ma 64KB, więc ostatni dostępny rejestr znajduje się pod offsetem 0xfffc. Zrzut rejestrów przez regmap debugfs odczytuje poza zmapowany region i powoduje oops na niezmapowanej stronie.
- CVE-2026-89720Wysokie
W jądrze Linux funkcja ubifs_sb_verify_signature() sprawdza pole ubifs_sig_node->len z błędnym znakiem, dodając rozmiar nagłówka zamiast go odejmować. To akceptuje zadeklarowaną długość do 2 * UBIFS_SIG_NODE_SZ większą niż węzeł faktycznie zawiera, co prowadzi do odczytu poza granicami bufora c->sbuf podczas przetwarzania podpisu PKCS7.
- CVE-2026-89719Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja read_block_state() w zram oblicza nr_pages przed zdobyciem dev_lock. Jeśli urządzenie zostanie zresetowane i ponownie zainicjowane z mniejszym disksize przed zdobyciem blokady, nr_pages nadal opisuje starą tablicę, a pętla może wywołać slot_lock() poza końcem nowo przydzielonej tablicy.
- CVE-2026-89718Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja writeback_store() w zram oblicza granice skanowania tablicy przed zdobyciem dev_lock. Reset i rekonfiguracja z mniejszym disksize może zastąpić zram->table, podczas gdy writeback_store() czeka na blokadę, co po jej zdobyciu prowadzi do skanowania nowej tablicy ze starą górną granicą i dostępu poza granicami.
- CVE-2026-89717Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja zram_destroy_comps() resetuje wszystkie kompresory i pozostawia je ustawione na NULL, w tym kompresor główny, co jest nieprawidłowym stanem urządzenia. Może to prowadzić do wywołania strcmp() na wskaźniku NULL w comp_algorithm_show().
- CVE-2026-89716Niskie ryzyko· EPSS 10%
W jądrze Linux w module zram brakowało walidacji parametrów deflate. Wartość winbits podana przez użytkownika nie była sprawdzana przed przekazaniem do zlib_deflate_workspacesize(), co wywoływało BUG_ON() przy wartościach spoza dozwolonego zakresu.
- CVE-2026-89715Niskie ryzyko· EPSS 10%
W jądrze Linux w mechanizmie NFS/localio występuje wyciek referencji, gdy funkcja nfs_uuid_add_file() napotka wyścig z nfs_uuid_put() i zwróci błąd -ENXIO. W takiej sytuacji ścieżka obsługi błędu nie zwalnia referencji do nfsd_file oraz nfsd_net, co uniemożliwia poprawne zamknięcie zasobów sieciowych.
- CVE-2026-89714Niskie ryzyko· EPSS 10%
W jądrze Linux występuje wyciek pamięci w podsystemie NFS. Funkcja nfs4_server_common_setup() alokuje tablicę delegation_hash_table, ale wskaźnik server->destroy, który odpowiada za jej zwolnienie, jest przypisywany dopiero na końcu funkcji. Jeśli którykolwiek z pośrednich kroków zakończy się błędem, tablica nie zostaje zwolniona, co prowadzi do wycieku 4 KiB pamięci jądra przy każdej nieudanej próbie montowania NFSv4.
- CVE-2026-89711Wysokie
W jądrze Linux usunięto błędny WARN_ON_ONCE z funkcji nfsd_mode_check(). Założenie uzasadniające ostrzeżenie było nieprawidłowe w przypadku reeksportu NFS, gdzie funkcja może napotkać dentry bez i_op->lookup. Zwracanie nfserr_notdir pozostaje konieczne, aby chronić ścieżkę lookup_one_unlocked() przed wywołaniem wskaźnika NULL.
- CVE-2026-89710Niskie ryzyko· EPSS 6%
W jądrze Linux ścieżka out_forget w funkcji pnfs_layout_process() nie opróżniała listy free_me, co prowadziło do wycieku segmentów layoutu. Poprzednie poprawki dodawały i usuwały opróżnianie listy, a obecna zmiana przywraca wywołanie pnfs_free_lseg_list().
- CVE-2026-89709Wysokie
W jądrze Linux wskaźnik nlmsvc_ops był publikowany i czyszczony zwykłymi zapisami, a lockd odwoływał się do niego bez zabezpieczenia z miejsc dyspozycji w fs/lockd/svcsubs.c. Po usunięciu modułu nfsd nieaktualne odwołanie mogło prowadzić do dereferencji NULL lub use-after-free tekstu modułu.
- CVE-2026-89707Wysokie
W jądrze Linux funkcja nfsd_cross_mnt() przy błędzie follow_down() przechodziła do etykiety out bez zwolnienia referencji ścieżki pobranych przez mntget() i dget(). Powodowało to wyciek referencji przy każdym nieudanym cross-mount, blokując odmontowanie i przypinając dentries.
- CVE-2026-89680Wysokie
W jądrze Linux w funkcji nfsd4_copy() występuje wyciek pamięci nfsd_file, gdy konfiguracja kopiowania między serwerami (inter-server COPY) zakończy się niepowodzeniem. Funkcja zwraca błąd bezpośrednio, pomijając etykietę out:, która zwolniłaby referencję do pliku. Każda nieudana operacja powoduje wyciek jednego obiektu nfsd_file, blokując plik, i-węzeł, dentry i punkt montowania.
- CVE-2026-89679Wysokie
W jądrze Linux w funkcji nfsd4_setattr() występuje dereferencja NULL, gdy żądanie SETATTR zawiera atrybuty czasu delegacji (FATTR4_WORD2_TIME_DELEG_ACCESS lub FATTR4_WORD2_TIME_DELEG_MODIFY) i klient poda specjalny stateid (wszystkie bajty 0xFF). Wskaźnik st pozostaje NULL, a następnie jest dereferencjonowany, powodując oops jądra. Podatność jest zdalnie wyzwalana przez dowolnego klienta NFSv4 bez uwierzytelnienia.
- CVE-2026-89678Wysokie
W jądrze Linux w funkcji nfsd_direct_write() występuje błąd wykrywania częściowego zapisu. Po wywołaniu vfs_iocb_iter_write() pole iter.count zawiera pozostałą liczbę bajtów, a nie oryginalną długość, więc warunek przerwania pętli jest nieprawidłowy. Krótkie zapisy kończące się między 50% a 99% segmentu nie są wykrywane, co prowadzi do zapisu kolejnego segmentu pod niewłaściwym przesunięciem i błędnego raportowania liczby bajtów do klienta NFS.
- CVE-2026-89673Niskie ryzyko· EPSS 12%
W jądrze Linux w funkcji nfsd4_ff_encode_getdeviceinfo() występuje błąd w obliczaniu dopełnienia XDR. Rezerwacja da_addr_body jest niezgodna z rzeczywistą liczbą bajtów zapisywanych przez xdr_encode_opaque(), co powoduje wyciek zawartości bufora odpowiedzi do klienta i błędne wyrównanie. Problem występuje przy każdej odpowiedzi flexfile GETDEVICEINFO.
- CVE-2026-89670Wysokie
W jądrze Linux naprawiono podatność w module nfsd, gdzie funkcja nfsd_open_local_fh() odwoływała się do wskaźnika nfsd_file bez utrzymywania blokady RCU. Obiekt mógł zostać zwolniony i ponownie przydzielony przez inny wątek, co prowadziło do użycia zwolnionej pamięci (use-after-free). Poprawka polega na objęciu operacji cmpxchg i pobrania referencji sekcją rcu_read_lock().
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

