Podatności Linux kernel
7561 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-97951Nieznane
W jądrze Linux w podsystemie iSCSI target występuje zawieszenie dla przerwanych komend WRITE_PENDING. Gdy inicjator wysyła pozostałe PDU dataout po przerwaniu, cel nie wywołuje procesu zakończenia, co prowadzi do zakleszczenia wątku roboczego. Poprawka wywołuje target_complete_cmd() po otrzymaniu ostatniego PDU dataout.
- CVE-2026-97950Nieznane
W jądrze Linux w systemie configfs występuje problem z przypinaniem dirent celu dowiązania symbolicznego. Funkcja create_link() odczytuje dirent z ci_dentry, które może być zwolnione podczas wyścigu z rmdir, co prowadzi do ostrzeżenia WARN_ON. Poprawka przypina dirent w get_target() pod zamkiem d_lock.
- CVE-2026-97949Nieznane
W jądrze Linux w systemie configfs występuje problem z usuwaniem katalogów (rmdir). Funkcja configfs_rmdir() pozostawia dentry zahaszowane po usunięciu elementu, co prowadzi do użycia po zwolnieniu w configfs_symlink(). Poprawka odhashowuje dentry przed upuszczeniem elementu.
- CVE-2026-97948Nieznane
W jądrze Linux w podsystemie powerpc/eeh występuje problem z rekurencyjnym blokowaniem, gdy urządzenie nie ma wrażliwego na EEH sterownika. Poprzednia poprawka dodała blokadę pci_rescan_remove_lock, ale nie usunęła istniejącego blokowania wewnątrz eeh_rmv_device(), co prowadzi do zawieszenia wątku eehd na blokadzie, którą już trzyma.
- CVE-2026-97947Nieznane
W jądrze Linux w podsystemie x86/amd_node istnieje potencjalne wyłuskanie wskaźnika NULL w funkcji __amd_smn_rw(), gdy amd_smn_init() nie powiedzie się i 'amd_roots' pozostaje NULL. Poprawka zastępuje sprawdzanie flagi 'smn_exclusive' bezpośrednim sprawdzeniem 'amd_roots', upraszczając logikę i eliminując ryzyko.
- CVE-2026-97946Nieznane
W jądrze Linux w podsystemie x86/amd_node występuje problem z licznikiem referencji PCI w funkcji amd_smn_init(). Poprawka używa makra __free() do automatycznego zmniejszenia licznika referencji dla tymczasowego wskaźnika oraz zwiększa licznik referencji przy cachowaniu wskaźnika root, aby oddzielić referencje tymczasowe od tych w użyciu.
- CVE-2026-97945Nieznane
W kernelu Linux wykryto podatność w funkcji pmd_modify() dla architektury x86, która powoduje utratę bitu dirty (brudnego) w PMD (Page Middle Directory) dla stron THP (Transparent Huge Pages). W rezultacie, po użyciu MADV_FREE i późniejszym zapisie danych, mechanizm reclaim (np. pod presją pamięci) może błędnie uznać strony za czyste i zwolnić je, co prowadzi do utraty danych użytkownika. Problem dotyczy również plikowych stron THP, gdzie zmodyfikowane dane nie są zapisywane z powrotem na dysk.
- CVE-2026-97944Nieznane
W jądrze Linux w podsystemie x86/cfi występuje błąd w funkcji cfi_get_func_hash(), która odczytuje hash FineIBT z nieprawidłowego przesunięcia (offset 7 zamiast 5). Powoduje to, że trampoliny BPF struct_ops otrzymują błędny hash, co prowadzi do awarii CFI przy pierwszym wywołaniu pośrednim.
- CVE-2026-97943Nieznane
W jądrze Linux wykryto podatność w mechanizmie CPA (Change Page Attributes) dla architektury x86. Podczas operacji łączenia wpisów tabel stron w większe wpisy (huge pages) dochodzi do zwolnienia tabel stron bez odpowiednich blokad, co może prowadzić do użycia po zwolnieniu (UAF) przez współbieżne operacje, takie jak ptdump.
- CVE-2026-97942Nieznane
W jądrze Linux występuje błąd w kodzie łatania alternatyw x86, który może prowadzić do awarii jądra (BUG_ON) w funkcji __text_poke. Problem pojawia się, gdy vmalloc_to_page() zawiedzie w wyniku wyścigu między text poking a change_page_attr (CPA), zwłaszcza gdy CONFIG_ARCH_HAS_EXECMEM_ROX=y, a moduły współdzielą jeden zakres execmem i równolegle wywołują set_memory_*(). Naprawa polega na wykluczeniu tego wyścigu poprzez użycie blokady init_mm mmap read lock.
- CVE-2026-97941Wysokie
W jądrze Linux występuje błąd wyścigu (race condition) w funkcji __slab_try_return_freelist() w mm/slab. Funkcja zakładała, że jeśli freelist jest NULL i cmpxchg się powiedzie, to żaden inny CPU nie zwolnił obiektu do slab, co prowadzi do klasycznego problemu ABA i uszkodzenia listy. Skutkuje to paniką jądra (kernel panic) i odmową usługi (DoS).
- CVE-2026-97940Wysokie
W jądrze Linux w podsystemie IPv6 występuje podatność use-after-free w iteratorze fib6 walker podczas zatrzymania sekwencji. Walker może zostać przeniesiony do stanu FWS_U, który jest błędnie traktowany jako odłączony, co prowadzi do zwolnienia obiektu seq, który nadal znajduje się na liście fib6_walkers, a późniejsze usuwanie tras używa zwolnionego walkera.
- CVE-2026-97939Nieznane
W jądrze Linux w podsystemie ipmr brakuje rozliczania pamięci dla tablic i tras multicast. Administrator w przestrzeni nazw użytkownika+sieci może tworzyć wiele tablic routingu multicast, które nie są obciążane do memcg, co prowadzi do niekontrolowanego wzrostu nieodzyskiwalnej pamięci slab.
- CVE-2026-97938Nieznane
W jądrze Linux występuje wyścig use-after-free wokół globalnego wskaźnika cad_pid. Funkcje proc_do_cad_pid() i kill_cad_pid() używają cad_pid bez zabezpieczenia czasu życia wskazywanej struktury pid, więc równoległy zapis może zwolnić ostatnie odwołanie do starej struktury, zanim czytelnik zakończy jej używanie. Podatność została naprawiona przez objęcie cad_pid ochroną RCU i odczekanie okresu karencji przed zwolnieniem starego odwołania.
- CVE-2026-97937Wysokie
W jądrze Linux występuje błąd use-after-free w mechanizmie ftrace podczas tworzenia procesu potomnego. Stan function graph jest inicjalizowany zbyt późno — po copy_exec_state() — więc gdy alokacja task_exec_state się nie powiedzie, funkcja free_task() zwalnia stos powrotów (ret_stack) należący do procesu nadrzędnego, który następnie odwołuje się do zwolnionej pamięci.
- CVE-2026-97936Nieznane
W jądrze Linux występuje podatność w mechanizmie tracingu, związana z modyfikatorem '.stacktrace' w histogramach. Funkcja parse_field() ustawia flagę HIST_FIELD_FL_STACKTRACE przed rozwiązaniem nazwy pola, a create_hist_field() wybiera funkcję HIST_FIELD_FN_STACK tylko na podstawie wskaźnika pola, bez sprawdzenia, czy pole rzeczywiście przechowuje stacktrace. Prowadzi to do nieograniczonego kopiowania danych i uszkodzenia pamięci (out-of-bounds read/write) podczas przetwarzania zdarzenia.
- CVE-2026-97935Nieznane
W jądrze Linux wykryto podatność use-after-free w mechanizmie histogramów tracingu. Funkcja hist_register_trigger() rejestruje trigger na globalnej liście named_triggers przed ustawieniem zegara trace, a nieznana nazwa zegara powoduje błąd po rejestracji, co prowadzi do zwolnienia obiektu bez usunięcia go z listy i późniejszego odczytu zwolnionej pamięci.
- CVE-2026-97934Nieznane
W jądrze Linux podatność w podsystemie tracing pozwala na uszkodzenie pamięci poprzez użycie klucza histogramu "STACKTRACE". Pole to jest przekazywane jako nie-NULL do create_hist_field(), co powoduje odczyt niezaufanego offsetu i długości, a następnie nieograniczony memcpy. W efekcie może dojść do błędu general protection fault i paniki jądra.
- CVE-2026-97933Nieznane
W jądrze Linux występuje podatność use-after-free w podsystemie tracing. Podczas otwierania pliku opcji tracera istnieje wyścig (race condition), w którym element tablicy topts może zostać zwolniony przez usunięcie instancji trace_array, zanim zostanie użyty do zwiększenia licznika referencji. Może to prowadzić do użycia zwolnionej pamięci.
- CVE-2026-97932Nieznane
W jądrze Linux mechanizm tracing (enable_event trigger) odraczał zwolnienie referencji trace_event_put_ref() do wątku jądra, ale powiązany trace_event_file mógł zostać już zwolniony przy usuwaniu instancji. Prowadziło to do użycia zwolnionej pamięci (use-after-free). Poprawka przechowuje trace_event_call bezpośrednio w enable_trigger_data, aby odroczone zwolnienie nie odwoływało się do zwolnionego trace_event_file.
- CVE-2026-97931Wysokie
W jądrze Linux sterownik ALSA us122l nie czyścił flagi VM_MAYWRITE dla mapowań bufora odczytu utworzonych z PROT_READ. Proces z dostępem O_RDWR do węzła hwdep mógł później użyć mprotect(), aby uczynić mapowanie zapisywalnym, a następnie zmodyfikować pole read_size i uzyskać dostęp do stron poza alokacją. Poprawka usuwa VM_MAYWRITE dla mapowań bufora odczytu.
- CVE-2026-97930Nieznane
W jądrze Linux sterownik ALSA usbusx2y ma niezgodność rozmiaru tablicy in04_last (char[24]) z buforem in04_buf alokowanym jako 21 bajtów (sizeof(struct us428_ctls)). W funkcji i_usx2y_in04_int() kopiowane jest 24 bajty z 21-bajtowej alokacji, co powoduje odczyt 3 bajtów poza końcem obiektu. Poprawka wprowadza stałą USX2Y_IN04_SIZE i używa jej spójnie.
- CVE-2026-97929Nieznane
W jądrze Linux sterownik ALSA usbusx2y w funkcji i_usx2y_in04_int() przetwarza dane URB bez sprawdzania urb->actual_length. Krótki transfer z wadliwego urządzenia powoduje przetwarzanie niezainicjalizowanych danych ze sterty (in04_buf), które są następnie kopiowane do tablicy ctl_snapshot[] dostępnej przez mmap. Poprawka używa kzalloc() i dodaje sprawdzenie actual_length.
- CVE-2026-97928Nieznane
W jądrze Linux sterownik drm/amdgpu wykonuje niepotrzebny flush VMID 0 dla operacji clear-on-release na VRAM, mimo że nie programuje okna GART. Na układach GFX11 (np. Navi33) ten zbędny flush SDMA może zawiesić silnik. Poprawka wykonuje flush tylko wtedy, gdy okno GART jest rzeczywiście używane.
- CVE-2026-97927Nieznane
W jądrze Linux system plików UFS instalował sb->s_root przed wczytaniem struktur grup cylindrów dla montowania zapisywalnego. Gdy wczytywanie się nie powiodło, ścieżka błędu zwalniała informacje superbloku i ustawiała sb->s_fs_info na NULL, pozostawiając sb->s_root, co powodowało dereferencję NULL podczas demontażu. Poprawka wczytuje metadane grup cylindrów najpierw, a korzeń tworzy na końcu.
- CVE-2026-97926Wysokie
W jądrze Linux system plików UFS kopiował indeks grupy cylindrów i pozycje rotorów z dysku bez walidacji, a następnie używał ich jako indeksów przy alokacji i zwalnianiu. Spreparowany obraz mógł ustawić dowolne wartości, powodując zapis poza alokacją s_csp lub skanowanie bitmapy daleko poza bufory grupy cylindrów. Poprawka odrzuca grupy cylindrów z niezgodnym indeksem lub rotorami poza grupą.
- CVE-2026-97925Nieznane
W jądrze Linux wykryto wyścig (race condition) podczas wymiany urządzenia broadcast (clockevents). Brak synchronizacji między instalacją nowego urządzenia broadcast a operacjami broadcast może prowadzić do użycia odłączonego urządzenia, co w skrajnym przypadku wywołuje BUG() w tick_cleanup_dead_cpu().
- CVE-2026-97924Nieznane
W jądrze Linux mechanizm tracing/user_events niszczył pola zdarzenia przed próbą usunięcia wywołania trace event. Gdy usunięcie się nie powiodło (np. zwrot -EBUSY), zdarzenie pozostawało zarejestrowane z nieodwracalnie zniszczoną listą pól, co prowadziło do operowania na pustej liście pól. Poprawka przenosi niszczenie pól po usunięciu wywołania i przywraca listę pól w razie niepowodzenia.
- CVE-2026-97923Nieznane
W jądrze Linux funkcja create_var_ref() alokuje pole VAR_REF hist_field, a następnie wywołuje init_var_ref(). Gdy inicjalizacja się nie powiedzie, pole nie jest zwalniane, ponieważ destroy_hist_field() zwraca wcześnie dla HIST_FIELD_FL_VAR_REF, a pole nie zostało jeszcze dodane do tablicy var_refs[]. Poprawka wywołuje __destroy_hist_field(), które zwalnia pole bez sprawdzania flagi.
- CVE-2026-97922Nieznane
W jądrze Linux w podsystemie tracing występuje wyciek pamięci. Gdy ta sama zmienna jest używana trzy lub więcej razy w jednym wyzwalaczu histogramu, usunięcie wyzwalacza nie zwalnia referencji do zmiennej ani powiązanych łańcuchów. Licznik referencji jest tylko zwiększany, a zwolnienie następuje dopiero przy wartości 0 lub 1, więc trzy lub więcej referencji powoduje wyciek.
- CVE-2026-97921Nieznane
W jądrze Linux wykryto podatność w mechanizmie tracingu (histogramy). Podczas tworzenia pola histogramu z niedozwolonym modyfikatorem (np. .log2) pole to nie jest poprawnie zwalniane, co prowadzi do wycieku pamięci. Problem dotyczy ścieżki obsługi błędów w funkcji __create_val_field(), gdzie pole nie trafia do listy fields[] i nie jest później usuwane.
- CVE-2026-97920Nieznane
W jądrze Linux w funkcji print_entries() (podsystem tracing/histogramy) zmienna n_entries jest używana zarówno jako liczba wpisów sortowania, jak i wartość zwracana. Gdy alokacja statystyk zawiedzie, zapisany kod błędu -ENOMEM nadpisuje licznik, który jest następnie przekazywany do tracing_map_destroy_sort_entries() jako liczba typu unsigned int, co powoduje odczyt i zwolnienie pamięci poza zakresem tablicy (vmalloc-out-of-bounds).
- CVE-2026-97919Nieznane
W jądrze Linux w podsystemie tracing występuje błąd use-after-free. Funkcja event_hist_trigger_named_init() najpierw publikuje wyzwalacz na globalnej liście named_triggers, a dopiero potem pobiera referencję; jeśli inicjalizacja się nie powiedzie, wyzwalacz nie jest usuwany z listy i zostaje zwolniony, a kolejne wyszukanie po nazwie odczytuje zwolniony obiekt.
- CVE-2026-97918Nieznane
W jądrze Linux wykryto podatność w mechanizmie tracingu związaną z rejestracją wyzwalaczy histogramów. Błąd powoduje, że wyzwalacz może zostać zwolniony z pamięci, mimo że nadal znajduje się na globalnej liście named_triggers, co prowadzi do użycia po zwolnieniu (use-after-free). Problem został naprawiony poprzez zmianę kolejności operacji rejestracji i wyrejestrowania wyzwalacza.
- CVE-2026-97917Nieznane
W jądrze Linux w sterowniku accel/ivpu funkcja ivpu_to_cpu_addr() nie walidowała całego zakresu bufora. Brak sprawdzenia, czy cały zakres [vpu_addr, vpu_addr + size) mieści się w buforze BO, mógł prowadzić do dostępu poza granicami.
- CVE-2026-97916Nieznane
W jądrze Linux w sterowniku accel/ivpu funkcja fw_log_print_buffer() ponownie odczytywała pola nagłówka logu z pamięci współdzielonej po ich wcześniejszej walidacji. Umożliwiało to atak TOCTOU, w którym firmware NPU zmienia wartości między sprawdzeniem a użyciem, powodując odczyt poza granicami podczas drukowania logów.
- CVE-2026-97915Nieznane
W jądrze Linux w sterowniku accel/ivpu drukowanie nazwy z nagłówka bufora tracingu nie było ograniczone do rozmiaru pola. Pole name jest tablicą o stałym rozmiarze wypełnianą przez firmware NPU i oczekuje się zakończenia znakiem NUL, ale brak tego zakończenia powodował odczyt poza polem i ujawnienie sąsiednich bajtów przez dmesg oraz debugfs.
- CVE-2026-97914Nieznane
W jądrze Linux w sterowniku accel/ethosu funkcja ethosu_job_open() zwracała wartość z WARN_ON() (0 lub 1) zamiast oryginalnego ujemnego kodu błędu. Powodowało to przekazanie do przestrzeni użytkownika nieprawidłowego kodu zwrotnego.
- CVE-2026-97913Nieznane
W jądrze Linux w sterowniku accel/ethosu nie zapewniano, że strumień poleceń kończy się operacją stop. Choć ustawienie rejestru QSIZE powinno zapobiegać dostępowi poza granicami, nie jest jasne, czy sprzęt wygeneruje wymagane przerwanie, co może prowadzić do przekroczenia limitu czasu.
- CVE-2026-97912Nieznane
W jądrze Linux w sterowniku accel: ethosu, w przypadku niepowodzenia mapowania SRAM, rozmiar SRAM pozostaje niezerowy. To pozwala zadaniom na dostęp do SRAM, który wskazuje na fizyczny adres bazowy 0x0.
- CVE-2026-97911Wysokie
W jądrze Linux w sterowniku accel: ethosu, użytkownik może ustawić rozmiar SRAM zadania na 0, ale nadal mieć dostęp do SRAM w strumieniu poleceń. Gdy rozmiar SRAM zadania wynosi 0, pomijane jest ustawienie rejestru bazowego regionu, co prowadzi do użycia nieaktualnego adresu bazowego z poprzedniego zadania.
- CVE-2026-97910Wysokie
W jądrze Linux w sterowniku ASoC dla platformy Spreadtrum (sprd) wykryto podatność polegającą na braku walidacji rozmiarów buforów kompresji względem stałych alokacji pamięci. Użytkownik lokalny może skonfigurować logiczny bufor do ~4 GB, co prowadzi do przepełnienia bufora IRAM (32K) lub DDR (2M) podczas operacji kopiowania z przestrzeni użytkownika.
- CVE-2026-97909Nieznane
W jądrze Linux w ASoC: sti, funkcja uni_reader_init() rejestruje wspólne IRQ przed inicjalizacją reader->irq_lock. Oczekujące przerwanie może wywołać handler, gdy blokada jest jeszcze niezainicjalizowana.
- CVE-2026-97908Nieznane
W jądrze Linux w Bluetooth: btqcomsmd, kolejność zamykania jest nieprawidłowa: hci_dev jest zwalniany przed zniszczeniem punktów końcowych RPMsg. Jeśli WCNSS dostarczy dane w tym oknie, wywołanie zwrotne może użyć już zwolnionego hci_dev.
- CVE-2026-97907Nieznane
W jądrze Linux w Bluetooth: btrtl, podczas parsowania formatu firmware v2, gdy key_id z chipa jest zerowe, funkcja rtlbt_parse_firmware_v2() celowo ignoruje wszystkie nagłówki zabezpieczeń, ale implementacja po prostu przerywa switch i wycieka niezainicjalizowany kod powrotu.
- CVE-2026-97906Nieznane
W jądrze Linux w bootconfig, w funkcji get_boot_config_from_initrd(), spreparowany initrd z ogromnym rozmiarem bootconfig (np. 0xFFFFFFFF) może spowodować zawinięcie arytmetyki wskaźników na systemach 32-bitowych, omijając kontrolę granic i prowadząc do śmiertelnego błędu strony podczas wczesnego rozruchu.
- CVE-2026-97905Nieznane
W jądrze Linux w cpufreq, maska CPU polityki (policy->cpus) jest alokowana bez zerowania (alloc_cpumask_var), co pozostawia niezainicjalizowaną bitmapę. Atrybuty sysfs są publikowane przed inicjalizacją maski, co pozwala na dostęp do nieprawidłowych danych.
- CVE-2026-97904Nieznane
W jądrze Linux w cpufreq, semafor polityki (policy->rwsem) jest inicjalizowany po utworzeniu katalogu sysfs i domyślnych atrybutów. Dostęp do sysfs może dotrzeć do wywołania zwrotnego polityki przed inicjalizacją semafora.
- CVE-2026-97903Wysokie
W jądrze Linux występuje podatność use-after-free w funkcji proc_flush_pid() wywoływanej podczas kończenia procesu. W wyniku błędnego założenia o utrzymaniu referencji do thread_pid, PID może zostać zwolniony przez callback RCU, zanim proc_flush_pid() zakończy działanie. Podatność może być wywołana przez nieuprzywilejowanego użytkownika poprzez wyścig między wait4(-1) a setsid().
- CVE-2026-97902Nieznane
W jądrze Linux wykryto podatność w mechanizmie zamrażania systemów plików. Po zmianie sposobu liczenia zamrożeń, operacja odmrożenia zagnieżdżonego zwracała błędny kod -EINVAL, mimo że faktycznie zdjęła jedno zamrożenie. Prowadzi to do trwałego zablokowania urządzenia blokowego, które nie może być ponownie zamontowane.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

