Podatności Linux kernel
10 419 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-99034Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik mmc sdhci-sprd włącza runtime PM w probe, ale ścieżka remove nie wykonuje odpowiadającego sprzątania runtime PM. Przy usuwaniu urządzenia może dojść do wyłączania zegarów zarządzanych przez runtime PM, które są już wyłączone, gdy urządzenie jest w stanie uśpienia. Poprawka wznawia urządzenie, wyłącza runtime PM i zwalnia referencję przed wyłączeniem zegarów.
- CVE-2026-99033Niskie ryzyko· EPSS 7%
W jądrze Linux w funkcji packet_rcv_spkt() brakuje sprawdzenia dev_has_header() przed wywołaniem skb_push() przy przywracaniu nagłówka warstwy łącza. Dla urządzeń bez widocznego nagłówka (np. CAN) skb->mac_header pozostaje na wartości 0xFFFF, co powoduje powstanie dużej ujemnej długości i wywołanie skb_under_panic() z kontekstu softirq, czyli pełny panic systemu. Luka jest osiągalna przez gniazdo SOCK_PACKET z uprawnieniem CAP_NET_RAW.
- CVE-2026-99032Wysokie
W jądrze Linux w funkcji smc_getname() występuje use-after-free (a w niektórych przypadkach NULL dereference) związany z brakiem synchronizacji przy dostępie do wskaźnika smc->clcsock. Zakończenie link-group może zwolnić gniazdo CLC przez smc_close_active_abort() w trakcie wywołania getsockname(), co prowadzi do odwołania do zwolnionej pamięci.
- CVE-2026-99031Niskie ryzyko· EPSS 6%
W jądrze Linux w podsystemie mostu sieciowego (net: bridge) funkcja br_multicast_sg_del_exclude_ports() usuwa grupy portów STAR_EXCL wywołując br_multicast_del_pg(), które dla wpisów S,G wywołuje rekurencyjnie tę samą funkcję. Duża liczba portów STAR_EXCL powoduje zużycie jednej ramki stosu jądra na port, co może doprowadzić do przepełnienia stosu (stack guard page).
- CVE-2026-99030Wysokie
W jądrze Linux funkcja skb_copy_and_csum_bits() przy napotkaniu nieczytelnych fragmentów zwraca 0 po skopiowaniu tylko części liniowej, pozostawiając resztę bufora wywołującego bez zmian. Ponieważ bufory (np. błędy ICMP lub bufory TX sterownika) nie są zerowane, do sieci mogą zostać wysłane nieoczekiwane dane z pamięci.
- CVE-2026-99027Niskie ryzyko· EPSS 7%
W jądrze Linux podsystem team: niezerowy wynik dev_queue_xmit() nie zwraca własności skb. Gdy qdisc portu nadpisania odrzuca pakiet, helper nadpisania kolejki próbuje użyć zwolnionego skb na innym porcie lub w operacji transmisji trybu, co prowadzi do use-after-free.
- CVE-2026-99025Niskie ryzyko· EPSS 6%
W jądrze Linux naprawiono błąd w module openvswitch, który powodował soft lockup podczas zrzutu przepływów przez netlink. Funkcja ovs_flow_cmd_dump() wywoływała ovs_flow_stats_get() dla każdego przepływu, co wielokrotnie zwalniało blokadę przez spin_unlock_bh() i uruchamiało zaległe softirq w kontekście wątku zrzutu, uniemożliwiając jego wywłaszczenie.
- CVE-2026-99024Niskie ryzyko· EPSS 6%
W jądrze Linux optee_probe() wywoływał tee_device_register() dla urządzenia klienta i suplikanta, zanim reszta struktury optee została zainicjalizowana. Powodowało to, że urządzenie było dostępne z przestrzeni użytkownika i jądra, zanim mutexy, ukończenia i cache argumentów zostały zainicjalizowane, a optee->ctx było NULL, co prowadziło do użycia niezainicjalizowanych mutexów i dereferencji NULL.
- CVE-2026-99022Niskie ryzyko· EPSS 6%
W jądrze Linux regulator ltc3676: rejestry HRST (0x1e) i CLIRQ (0x1f) są tylko do zapisu (stroby komend). Odczyt HRST wyzwala twardy reset układu, a odczyt CLIRQ czyści przerwanie. Zwykły zrzut rejestrów przez regmap powoduje reset płyty.
- CVE-2026-99019Niskie ryzyko· EPSS 7%
W jądrze Linux sterownik scsi: ch w ch_readconfig() pobiera referencję do scsi_device każdego elementu transferu danych i nigdy jej nie zwalnia. Po usunięciu napędu jego scsi_device nie może zostać zwolniony, blokując ponowne użycie adresu i uniemożliwiając wyładowanie modułu sterownika. Poprawka zwalnia referencję zaraz po wypisaniu nazwy i usuwa nieużywaną tablicę dt[].
- CVE-2026-99018Wysokie
W jądrze Linux na architekturze RISC-V, w funkcji handle_exception() przy włączonym CONFIG_SHADOW_CALL_STACK, decyzja o przeładowaniu wskaźnika shadow call stack (gp) opierała się na rejestrze tp, który jest kontrolowany przez użytkownika. Poprzez ustawienie tp na adres własnego task_struct użytkownik mógł wymusić pominięcie przeładowania gp, co prowadzi do dowolnego zapisu w pamięci jądra i przejęcia przepływu sterowania przez nieuprzywilejowanego użytkownika.
- CVE-2026-99017Wysokie
W jądrze Linux errata_probe_ghostwrite() oznacza CPU jako podatny tylko na wczesnym etapie rozruchu, który wymaga CONFIG_RISCV_ALTERNATIVE_EARLY. Ta opcja jest obecnie wybierana tylko przez ERRATA_THEAD_MAE, więc przy ERRATA_THEAD_GHOSTWRITE=y i ERRATA_THEAD_MAE=n stan podatności nigdy nie jest ustawiany, a mitygacja nie działa. Poprawka wybiera RISCV_ALTERNATIVE_EARLY z ERRATA_THEAD_GHOSTWRITE.
- CVE-2026-99016Wysokie
W jądrze Linux na RISC-V funkcje futex przekazują surowy wskaźnik użytkownika do operacji atomowych bez usunięcia tagu, mimo że access_ok() sprawdza adres po odtagowaniu. Przy włączonym ABI tagowanych adresów (CONFIG_RISCV_ISA_SUPM) proces nieuprzywilejowany może spowodować atomowy odczyt-modyfikację-zapis pod dowolnym adresem jądra przez FUTEX_WAKE_OP. Poprawka usuwa tag przed operacją atomową, tak jak robią to get_user()/put_user().
- CVE-2026-99015Niskie ryzyko· EPSS 6%
W jądrze Linux podsystem Bluetooth hci_sock: ponowne powiązanie gniazda HCI po wyrejestrowaniu kontrolera może wyścignąć się z odtwarzaniem monitora. hci_sock_bind() czyści wskaźnik hdev i zwalnia referencję tylko pod blokadą gniazda, podczas gdy send_monitor_control_replay() czyta pod hci_sk_list.lock, co prowadzi do dereferencji NULL lub use-after-free. Poprawka pobiera hci_sk_list.lock do zapisu przy czyszczeniu wskaźnika i resetowaniu stanu gniazda.
- CVE-2026-99014Wysokie
W jądrze Linux w funkcji hci_le_set_ext_scan_param_sync() podczas konfiguracji skanowania PA występuje użycie po zwolnieniu pamięci (use-after-free). Wskaźnik do adresu jest pobierany z hci_sent_cmd_data() bez utrzymywania referencji do skb, a równoległy wątek hci_cmd_work() może zwolnić i zastąpić ten skb, zanim adres zostanie odczytany. Problem został naprawiony przez synchronizację dostępu do sent_cmd i req_skb za pomocą hdev->lock oraz skopiowanie adresu przed zwolnieniem blokady.
- CVE-2026-99013Wysokie
W jądrze Linux naprawiono błąd w obsłudze Bluetooth ISO, gdzie równoczesne wywołania listen() na tym samym gnieździe broadcastowym mogły doprowadzić do nadpisania wskaźnika połączenia i wycieku referencji. W rezultacie późniejsze zdarzenia mogły powodować dostęp do zwolnionego gniazda (use-after-free), co potwierdzono raportem KASAN.
- CVE-2026-99012Wysokie
W jądrze Linux w obsłudze Bluetooth ISO funkcja iso_sock_connect() sprawdza stan gniazda przed założeniem blokady i zwalnia ją przed nawiązaniem połączenia, co pozwala dwóm równoczesnym wywołaniom przejść kontrolę dopuszczenia. Prowadzi to do nadpisania miejsca docelowego gniazda, wycieku referencji i użycia zwolnionego gniazda (use-after-free), co potwierdził KASAN w iso_sock_hold().
- CVE-2026-99011Wysokie
W jądrze Linux w obsłudze Bluetooth SCO występował wyścig między ścieżką odbioru danych (sco_recv_scodata) a zwalnianiem struktury sco_conn, co prowadziło do użycia zwolnionej pamięci (use-after-free). Wskaźnik hcon->sco_data był czyszczony bez trzymania hdev->lock, więc ścieżka RX mogła wykonać kref_get_unless_zero() na już zwolnionym obiekcie. Poprawka nadaje wskaźnikowi rzeczywiste odwołanie i serializuje jego czyszczenie pod hdev->lock.
- CVE-2026-99010Niskie ryzyko· EPSS 6%
W jądrze Linux w implementacji Bluetooth RFCOMM występuje wyciek pamięci (skb) w funkcji rfcomm_recv_data(), gdy DLC nie ma właściciela. Implementacja gniazda zwraca skb bez zwolnienia, podczas gdy implementacja tty zwalnia go poprawnie. Wyciek narasta w sposób ciągły, ponieważ zdalna strona wciąż otrzymuje kredyty i wysyła kolejne ramki danych.
- CVE-2026-99009Niskie ryzyko· EPSS 6%
W jądrze Linux w podsystemie Bluetooth RFCOMM występuje problem zakleszczenia (AB/BA) między muteksem rfcomm_mutex a blokadą hdev->lock. Podczas uwierzytelniania łącza BR/EDR wywołanie connect() na gnieździe RFCOMM może prowadzić do wykrycia cyklicznej zależności blokad, co grozi zakleszczeniem. Poprawka polega na połączeniu gniazda sesji bez trzymania rfcomm_mutex i późniejszym dodaniu sesji do listy.
- CVE-2026-99008Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku Bluetooth RFCOMM występuje dereferencja NULL w rfcomm_dev_shutdown() podczas zamykania tty RFCOMM. Gdy rejestracja urządzenia tty w rfcomm_dev_add() nie powiedzie się, dev->tty_dev pozostaje nieustawione, a funkcja shutdown używa go bez sprawdzenia.
- CVE-2026-99007Niskie ryzyko· EPSS 6%
W jądrze Linux w drm/fb-helper występuje problem, gdy drm_fb_helper_single_fb_probe() zawiedzie z błędem innym niż -EAGAIN. Wówczas fb_helper->deferred_setup nie jest ustawiane, a późniejsze wywołanie .restore() zatwierdza nieaktualny mode_set z fb == NULL, co wywołuje WARN_ON(!set->fb).
- CVE-2026-99006Wysokie
W jądrze Linux w drm/i915/gem funkcja eb_relocate_parse_slow() może wywołać kvfree() na wpisach poza oryginalną tablicą exec. Dzieje się tak, ponieważ eb_parse() zwiększa eb->buffer_count po dodaniu VMA, a sprzątanie używa zwiększonego licznika do zwalniania wskaźników relokacji.
- CVE-2026-99005Niskie ryzyko· EPSS 8%
W jądrze Linux w komponencie drm/i915/gt występuje wyścig między odczytem stanu ACTIVE w intel_rps_boost() a zakolejkowaniem rps->work. Może to spowodować wywołanie rps_work() po zaparkowaniu GT i odmaskowanie przerwań RPS PM bez trzymania wakelocka PM, co kończy się komunikatem „RPM wakelock ref not held during HW access” i oznaczeniem jądra jako tainted.
- CVE-2026-99002Wysokie
W jądrze Linux w drm/vmwgfx brakuje walidacji pitch (skoku) pochodzącego z przestrzeni użytkownika przed kopiowaniem danych z powierzchni. Może to prowadzić do odczytów poza granicami pamięci podczas cursor snooping.
- CVE-2026-98995Wysokie
W jądrze Linux funkcja mnt_change_mountpoint() nie resetowała pola ->overmount starego rodzica, w przeciwieństwie do __umount_mnt(). W ścieżce reparent()/propagate_umount() prowadziło to do wskaźnika wiszącego i use-after-free, gdy deskryptor pliku utrzymywał przy życiu odmontowany mount, a do_lock_mount() podążał za ->overmount do zwolnionego obiektu.
- CVE-2026-98993Wysokie
W jądrze Linux naprawiono błąd w clone_mnt(), gdzie flaga MNT_UMOUNT była dziedziczona przez klonowane punkty montowania. Pozwalało to na tworzenie kopii leniwie odmontowanego montowania (utrzymywanego przez deskryptor pliku nsfs/pidfs), co prowadziło do licznych błędów: wycieków struktur, nieprawidłowego odmontowywania sąsiadów, problemów z propagacją i reparentowaniem. Poprawka dodaje MNT_UMOUNT do MNT_INTERNAL_FLAGS, aby flaga nie była kopiowana.
- CVE-2026-98992Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja may_copy_tree() akceptowała mount, którego korzeń jest plikiem nsfs lub pidfs, przed sprawdzeniem czy mount jest zamontowany. Wyjątek ten dopuszczał także bind mount takiego pliku po lazy unmount, utrzymywany tylko przez deskryptor pliku, przez co rekurencyjne kopiowanie (MS_REC/AT_RECURSIVE) kopiowało cały odmontowany stos mountów.
- CVE-2026-98991Wysokie
W jądrze Linux występuje luka use-after-free w mechanizmie powiadomień o montowaniu. Funkcja mnt_notify_add() nie sprawdza, czy dany montaż jest już w kolejce notify_list, co przy wielokrotnym wywołaniu umount_tree() w ramach jednego namespace_sem prowadzi do dodania tego samego montażu dwukrotnie i uszkodzenia listy. Późniejsze operacje montowania na hoście odwołują się do zwolnionej pamięci.
- CVE-2026-98990Niskie ryzyko· EPSS 7%
W jądrze Linux funkcje shrink_submounts() i mark_mounts_for_expiry() najpierw zbierają punkty montowania do odmontowania, a następnie je odmontowują. Odmontowanie pierwszego punktu zmienia drzewo propagacji, przez co drugi punkt montowania może zostać odmontowany mimo że jest zajęty (busy), co prowadzi do stanu MNT_SYNC_UMOUNT z aktywnymi użytkownikami. Problem dotyczy punktów montowania z flagą MNT_SHRINKABLE, np. automatycznie montowanych podmontowań NFS, AFS, CIFS lub tracefs pod debugfs.
- CVE-2026-98988Wysokie
W jądrze Linux naprawiono podatność w mechanizmie open_tree(OPEN_TREE_NAMESPACE), który tworzy nową przestrzeń nazw montowań z kopii drzewa pod podaną ścieżką. Nieuprzywilejowany użytkownik mógł najpierw utworzyć przestrzeń nazw użytkownika, a następnie uzyskać dostęp do zawartości ukrytej przez zamontowane punkty montowania (np. maskowanie /proc i /sys w kontenerach).
- CVE-2026-98985Niskie ryzyko· EPSS 6%
W jądrze Linux naprawiono błąd use-after-free w funkcji path_pivot_root() wywoływanej przez pivot_root(). Funkcja odczytywała wskaźnik rodzica (mnt_parent) dla montowania, które mogło zostać już odmontowane i zwolnione, jeśli tylko deskryptor pliku utrzymywał je przy życiu. Sprawdzenie przynależności do przestrzeni nazw montowań następuje teraz przed odczytem rodziców.
- CVE-2026-98984Niskie ryzyko· EPSS 6%
W jądrze Linux funkcja attach_recursive_mnt() tworzy drugi punkt montowania dla korzenia montowania źródła bez blokady inode, a d_set_mounted() odrzuca tylko dentry, które są odlinkowane. Między detach_mounts() a d_delete() ofiara jest wciąż w hashu, więc bind mount usuwanego katalogu może zostać przeniesiony pod istniejące montowanie i nigdy nie zostanie odłączony. Prowadzi to do pozostawienia montowania na usuniętym katalogu.
- CVE-2026-98982Wysokie
W jądrze Linux d_alloc_pseudo() zwraca dentry z flagą DCACHE_NORCU, które są natychmiast zwalniane, o ile nie stanowią korzenia montowania. Bind mounting /proc/self/fd/<fd> takiego pliku (np. tokenu BPF na bpffs) czyni taki dentry korzeniem montowania, co prowadzi do use-after-free podczas ścieżki __follow_mount_rcu(). Może to spowodować dostęp do zwolnionej pamięci.
- CVE-2026-98981Wysokie
W jądrze Linux występuje luka wyścigu w funkcji __detach_mounts() podczas odłączania punktów montowania od wpisu katalogowego. Między detach_mounts() a d_delete() wpis pozostaje w dcache jako dodatni, mimo że nic go już nie przykrywa, co pozwala współbieżnym wyszukiwaniom odsłonić ukrytą zawartość. Problem dotyczy usuwania plików lub katalogów będących punktami montowania w innych przestrzeniach nazw montowania.
- CVE-2026-98980Wysokie
W jądrze Linux naprawiono podatność w mechanizmie namei (refwalk), która pozwalała ujawnić wpisy przesłonięte przez punkt montowania. W wąskim oknie czasowym między odłączeniem montowań a usunięciem nazwy (unlink/rmdir/rename) refwalk mógł zwrócić podstawowy wpis zamiast zamontowanej zawartości. Poprawka dodaje sprawdzenie flagi DCACHE_CANT_MOUNT po step_into(), aby wykryć taki przypadek.
- CVE-2026-98979Niskie ryzyko· EPSS 6%
W jądrze Linux występuje błąd w obsłudze przestrzeni nazw montowania, który pozwala na dodanie automontowania pod punktem montowania nienależącym do przestrzeni nazw wywołującego. Funkcja clone_private_mount() ustawia MNT_NS_INTERNAL, przez co test poprawności przechodzi, a count_mounts() dereferencjonuje wskaźnik błędu, powodując general protection fault. Podatność można wywołać z przestrzeni użytkownika przez fanotify, a błąd występuje przy trzymanej blokadzie namespace_sem, co blokuje kolejne operacje montowania w systemie.
- CVE-2026-98978Wysokie
W jądrze Linux występuje błąd w obsłudze zamontowań zablokowanych (locked mounts), które mają chronić ukryte pliki i katalogi przed ujawnieniem. Gdy właściciel przestrzeni nazw użytkownika umieści montowanie pod zablokowanym montowaniem za pomocą MOVE_MOUNT_BENEATH, właściwość blokady przenosi się na dolne montowanie, umożliwiając odmontowanie górnego montowania i ujawnienie ukrytego katalogu. Poprawka powoduje, że zwykłe umount() zwraca EBUSY, a zablokowane montowanie jest usuwane razem z rodzicem.
- CVE-2026-98977Niskie ryzyko· EPSS 7%
W jądrze Linux naprawiono błąd w obsłudze blokad montowania dla automontowań w przestrzeniach nazw. Nieprawidłowe porównanie przestrzeni nazw użytkownika powodowało, że blokada trafiała na montowanie hosta zamiast na kopię w przestrzeni nazw procesu potomnego, co uniemożliwiało hostowi zmianę flag własnych montowań.
- CVE-2026-98976Wysokie
W jądrze Linux naprawiono podatność w obsłudze przestrzeni nazw montowania. Funkcja attach_recursive_mnt() przenosiła flagę MNT_LOCKED z górnego montowania na montowanie przenoszone pod nie, co pozwalało właścicielowi przestrzeni nazw użytkownika odblokować i odmontować chronione montowanie /proc lub root, ujawniając ukryte dane.
- CVE-2026-98971Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku GPIO exar występuje błąd kolejności inicjalizacji: identyfikator ID jest zapisywany w strukturze exar_gpio dopiero po zarejestrowaniu akcji sprzątającej devm_add_action_or_reset(). Jeśli rejestracja się nie powiedzie, akcja sprzątająca zwalnia ID 0 zamiast przydzielonego ID, co powoduje wyciek zasobu lub zwolnienie ID należącego do innego urządzenia.
- CVE-2026-98970Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku drm/vc4 funkcja vc4_bo_cache_destroy() usuwa buforowane obiekty BO, ale nigdy nie zwalnia listy rozmiarów pamięci podręcznej, co powoduje wyciek pamięci przy każdym odłączeniu urządzenia (unbind).
- CVE-2026-98969Niskie ryzyko· EPSS 6%
W jądrze Linux w net/sched em_text funkcja em_text_change() przekazuje do textsearch_prepare() tablicę algo bez wymuszonego terminatora NUL. Przy ponowieniu TS_AUTOLOAD wywołanie request_module() z %s odczytuje dane poza tablicą, ujawniając pamięć jądra w wierszu poleceń modprobe. Wymaga to uprawnień CAP_NET_ADMIN w docelowej przestrzeni nazw sieci.
- CVE-2026-98968Wysokie
W jądrze Linux naprawiono błąd use-after-free w sterowniku AMT. Zapytanie IGMP/MLD było kolejkowane przez qdisc, a wskaźnik do tunelu przechowywany w skb->cb mógł wskazywać na zwolniony tunel, co prowadziło do użycia po zwolnieniu w amt_dev_xmit(). Poprawka wysyła zapytanie bezpośrednio ze ścieżki odbioru, z pominięciem qdisc.
- CVE-2026-98967Niskie ryzyko· EPSS 7%
W jądrze Linux w cxgb4/ch_ktls tablica tid_list jest wstawiana przez xa_insert_bh() z wyłączonymi softirq, ale ścieżki chcr_ktls_dev_del() i błąd w chcr_ktls_dev_add() używają xa_erase() bez wyłączania softirq. Może to spowodować zakleszczenie, gdy softirq odbioru przerwie operację kasowania i będzie czekać na trzymaną blokadę.
- CVE-2026-98964Wysokie
W jądrze Linux w nvmet funkcja nvmet_req_alloc_p2pmem_sgls() przypisuje req->p2p_dev dopiero po udanej alokacji danych i metadanych SGL. Jeśli alokacja danych się powiedzie, a metadanych nie, ścieżka out_free_sg przekazuje niezainicjalizowany req->p2p_dev do pci_p2pmem_free_sgl().
- CVE-2026-98956Niskie ryzyko· EPSS 6%
W jądrze Linux sterownik ASoC adau1372 używał gpiod_set_value() dla GPIO powerdown, co powodowało ostrzeżenie gdy dostawca GPIO może spać (np. ekspandery I2C). Poprawka używa wariantu _cansleep.
- CVE-2026-98955Niskie ryzyko· EPSS 6%
W jądrze Linux naprawiono błąd w flow_dissector, gdzie obliczanie key_control->thoff używało min_t(u16, ...), co powodowało obcięcie skb->len do 16 bitów. Dla pakietów większych niż 64 KB (np. GSO, BIG TCP) prowadziło to do błędnego, małego offsetu nagłówka transportowego, nawet gdy parsowanie się powiodło.
- CVE-2026-98952Wysokie
W jądrze Linux funkcja pfcp_session_recv() odczytywała 8-bajtowy SEID bez zapewnienia, że znajduje się on w liniowej części pakietu. Krótki pakiet PFCP z flagą S lub pakiet z nagłówkiem sesji we fragmencie powodował odczyt poza końcem danych pakietu.
- CVE-2026-98950Niskie ryzyko· EPSS 7%
W jądrze Linux funkcja bpf_flow_dissect() ograniczała offsety zwracane przez program BPF za pomocą clamp_t(u16, ..., hlen). Gdy hlen przekraczał 65535, górna granica była obcinana przed porównaniem, co mogło wymuszać zerowe wartości nhoff i thoff mimo poprawnych wartości zwróconych przez program.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

