Podatności Linux kernel
10 418 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-98146Średnie
W jądrze Linux w sterowniku accel/amdxdna struktura amdxdna_cmd_chain zawiera elastyczną tablicę z adnotacją __counted_by(command_count). Ponieważ struktura jest przechowywana w pamięci współdzielonej AMDXDNA_BO_SHARE, przestrzeń użytkownika może równolegle zmienić command_count na zero, co powoduje niepowodzenie sprawdzania zakresu i panikę jądra.
- CVE-2026-98145Średnie
W jądrze Linux w sterowniku accel/amdxdna łańcuch poleceń z command_count równym zero przechodzi sprawdzanie długości ładunku, a pętla wypełniania się nie wykonuje. Na firmware bez AIE2_NPU_COMMAND żądanie jest odrzucane, ale na firmware z aie2_get_npu_chain_msg_op() trafia do drm_clflush_virt_range(cmd_buf, 0), co powoduje odczyt bajtu przed buforem i błąd na stronie ochronnej vmap.
- CVE-2026-98144Średnie
W jądrze Linux w sterowniku accel/amdxdna funkcja amdxdna_cmd_set_error() pobiera referencję do pierwszego BO łańcucha poleceń, ale w ścieżce błędu mapowania nie zwalnia jej, powodując wyciek referencji. Ścieżka jest osiągalna, gdy uchwyt BO zostanie poddany recyklingowi przez przestrzeń użytkownika po przesłaniu, a następnie zaimportowany zostanie dma-buf bez implementacji vmap.
- CVE-2026-98143Wysokie
W jądrze Linux w sterowniku accel/ethosu bity 15:14 rejestru NPU_SET_{IFM,OFM}_PRECISION wybierają tryb przechowywania aktywacji tylko na U85; na U65 to samo pole zawiera tryb zaokrąglania. Parser strumienia poleceń odczytuje je jako tryb przechowywania, co powoduje odrzucanie prawidłowych strumieni U65 z -EINVAL oraz błędne obliczenia rozmiaru mapy cech.
- CVE-2026-98142Średnie
W jądrze Linux sterownik drm/cirrus-qemu nie sprawdzał rozmiaru BAR0 podczas wykrywania urządzenia PCI. Jeśli urządzenie miało BAR0 mniejsze niż 4 MB (CIRRUS_VRAM_SIZE), sterownik mapował mniejszy obszar VRAM, a następnie mógł tworzyć większe bufor ramki i kopiować je poza zmapowaną pamięć, powodując błąd zapisu strony (page fault) w jądrze.
- CVE-2026-98134Średnie
W jądrze Linux występuje luka w weryfikatorze BPF, która pozwala błędnie wywnioskować, że wskaźnik nie może być NULL. Błąd występuje przy porównywaniu dwóch wskaźników, gdy jeden z nich ma typ bez flagi PTR_MAYBE_NULL, ale w czasie działania może przyjąć wartość NULL. W efekcie weryfikator nie wykrywa dereferencji wskaźnika NULL, co może prowadzić do awarii lub wykonania nieautoryzowanego kodu.
- CVE-2026-98132Średnie
W jądrze Linux weryfikator BPF mógł niepoprawnie przekształcać zapisy zerowe na stosie (scalar zero spill) w STACK_ZERO, gdy część zapisanych bajtów była już martwa. Takie przekształcenie łamało łańcuchy propagacji precyzji, co mogło prowadzić do błędnej weryfikacji programów BPF. Poprawka najprościej rezygnuje z konwersji zapisów zerowych na STACK_ZERO.
- CVE-2026-98131Średnie
W sterowniku sieciowym stmmac w jądrze Linux funkcja stmmac_tso_xmit() nie zwalniała mapowań DMA utworzonych dla części liniowej i wcześniejszych fragmentów skb, gdy mapowanie DMA kolejnego fragmentu się nie powiodło. Prowadziło to do wycieku mapowań DMA. Poprawka zwalnia deskryptory i mapowania DMA przy użyciu stmmac_free_tx_buffer() i stmmac_release_tx_desc().
- CVE-2026-98130Wysokie
W jądrze Linux w obsłudze SCTP_CMD_TIMER_START występuje wyścig TOCTOU: sprawdzenie timer_pending() przed timer_reduce() może spowodować, że timer wygaśnie i zostanie odłączony pomiędzy tymi operacjami. Wtedy timer_reduce() uzbroi timer bez pobrania referencji do asocjacji, co prowadzi do niezrównoważenia licznika referencji i use-after-free podczas niszczenia asocjacji. Poprawka używa wartości zwracanej przez timer_reduce() do ustalenia, czy timer został faktycznie uzbrojony.
- CVE-2026-98129Średnie
W jądrze Linux w sterowniku scsi mpi3mr funkcja mpi3mr_sas_port_add() nie sprawdza wartości NULL zwracanej przez sas_port_alloc_num() przy niepowodzeniu alokacji pamięci, co prowadzi do dereferencji NULL. Dodatkowo, gdy sas_port_add() zawiedzie, zaalokowany port nie jest zwalniany, co powoduje wyciek struktury sas_port. Poprawka dodaje sprawdzenie NULL i wywołanie sas_port_free().
- CVE-2026-98128Średnie
W jądrze Linux w sterowniku scsi mpi3mr funkcja mpi3mr_sas_port_add() nie zwalnia referencji do urządzenia docelowego (tgtdev) w ścieżce błędu out_fail, jeśli referencja została wcześniej pobrana przez mpi3mr_get_tgtdev_by_addr(). Prowadzi to do wycieku licznika referencji i uniemożliwia zwolnienie struktury urządzenia docelowego. Poprawka dodaje zwolnienie referencji w out_fail z zabezpieczeniem NULL.
- CVE-2026-98127Średnie
W jądrze Linux w kliencie SMB funkcja smb3_insert_range() nie sprawdza, czy nowy rozmiar pliku (i_size + len) jest prawidłowy. Pozwala to operacji FALLOC_FL_INSERT_RANGE obejść limit RLIMIT_FSIZE, przekroczyć s_maxbytes lub utworzyć rozmiar poza zakresem loff_t. Poprawka używa check_add_overflow() do obliczenia nowego EOF i waliduje go przez inode_newsize_ok().
- CVE-2026-98126Średnie
W kliencie SMB w jądrze Linux funkcja smb3_zero_range() może rozszerzyć EOF pliku bez sprawdzenia limitu RLIMIT_FSIZE, gdy używane jest FALLOC_FL_ZERO_RANGE bez FALLOC_FL_KEEP_SIZE. Poprawka dodaje wywołanie inode_newsize_ok() przed wysłaniem żądania zero-range, gdy operacja rozszerzałaby EOF.
- CVE-2026-98123Średnie
W jądrze Linux wykryto podatność w implementacji protokołu SCTP, polegającą na niezgodnym iterowaniu parametrów ASCONF-ACK między funkcjami weryfikującymi a konsumującymi. Atakujący może wysłać spreparowany pakiet ASCONF-ACK, powodując zapętlenie w kontekście softirq i doprowadzając do miękkiego zawieszenia systemu (soft lockup), co stanowi zdalną odmowę usługi. Dodatkowo brak walidacji długości parametru SCTP_PARAM_ERR_CAUSE umożliwia odczyt poza granicami bufora.
- CVE-2026-98122Wysokie
W jądrze Linux występuje podatność use-after-free w funkcji vxlan_mdb_remote_src_del() związanej z obsługą wpisów MDB dla VXLAN. Funkcja vxlan_mdb_is_valid_source() akceptuje adres źródłowy składający się z samych zer, co pozwala na aliasowanie kluczy wpisów (*, G) i (S, G), a w konsekwencji na zwolnienie, a następnie ponowne użycie tego samego wpisu pamięci.
- CVE-2026-98121Średnie
W sterowniku watchdoga msc313e w jądrze Linux funkcja msc313e_wdt_probe() nie ustawia danych sterownika dla urządzenia platformowego, przez co dev_get_drvdata() w msc313e_wdt_suspend() i msc313e_wdt_resume() zwraca NULL i następuje dereferencja wskaźnika NULL. Poprawka ustawia dane sterownika w msc313e_wdt_probe().
- CVE-2026-98120Średnie
W podsystemie netfs jądra Linux występuje wyciek referencji podżądania (subrequest) w funkcji netfs_unbuffered_write(), gdy subreq->io_iter ma zerową długość podczas przygotowania. Poprawka naprawia ten wyciek referencji.
- CVE-2026-98119Średnie
W podsystemie netfs jądra Linux, gdy netfs_alloc_subrequest() zwróci błąd, subreq ma wartość NULL, a następnie netfs_prepare_write() próbuje zainicjalizować jego pola, co prowadzi do dereferencji wskaźnika NULL. Poprawka prawidłowo obsługuje błąd netfs_prepare_write().
- CVE-2026-98118Wysokie
W jądrze Linux wykryto podatność w podsystemie netfs związaną z synchronizacją odczytu z wyprzedzeniem (readahead). Problem wynika z dodawania stron (folio) do bufora przez wątek aplikacji w trakcie, gdy wątek zbierający je przetwarza, co może prowadzić do błędów w określaniu kolejności stron. Poprawka polega na wczytywaniu wszystkich stron wybranych przez VM do bufora z góry, a następnie zwalnianiu referencji po rozpoczęciu operacji I/O.
- CVE-2026-98117Wysokie
W podsystemie cachefiles jądra Linux funkcja trace_cachefiles_coherency() otrzymuje wskaźnik do __be64 nakładany na dane koherencji o zmiennej długości (mogącej wynosić nawet 0 bajtów), co może prowadzić do UAF lub ostrzeżenia KASAN. Poprawka zapewnia co najmniej 8 bajtów miejsca w buforze, wstępnie je zeruje i pobiera dane jako cztery 2-bajtowe słowa.
- CVE-2026-98115Wysokie
W jądrze Linux w ksmbd podczas wylogowania sesji SMB3 multichannel nie czekano na wszystkie kanały przed zwolnieniem współdzielonych obiektów sesji. Dodano bezpieczne opróżnianie, które budzi zablokowane blokady zakresu bajtów, wywołuje callbacki anulowania dla żądań CANCEL i serializuje zamykanie sesji z rejestracją kanałów.
- CVE-2026-98114Średnie
W jądrze Linux funkcja parse_dacl() w ksmbd akceptowała błędnie obcięte ACE i błędy alokacji, co pozwalało na kontynuowanie z niekompletną konwersją ACL. Poprawka propaguje błędy parsowania i alokacji do parse_sec_desc(), aby odrzucać nieprawidłowe deskryptory bezpieczeństwa przed aktualizacją atrybutów inode lub xattr ACL.
- CVE-2026-98113Średnie
W jądrze Linux w ksmbd klient może wysłać wiele strukturalnie poprawnych, ale nieodwzorowanych SID w DACL, co powoduje zalewanie logu jądra setkami komunikatów o błędach. Poprawka ogranicza częstotliwość logowania tych błędów.
- CVE-2026-98112Wysokie
W jądrze Linux w ksmbd wątek nasłuchujący kończy działanie, gdy gniazdo nasłuchujące jest zamykane. Notyfikator netdevice zamyka gniazdo przed wywołaniem kthread_stop(), co może prowadzić do zwolnienia task_struct przed uzyskaniem referencji. Poprawka tworzy wątek w stanie zatrzymanym i utrzymuje dodatkową referencję do czasu zakończenia kthread_stop_put().
- CVE-2026-98111Wysokie
W jądrze Linux w sterowniku Bluetooth btintel funkcja btintel_parse_version_tlv() nie sprawdza, czy wartość TLV jest wystarczająco długa dla danego typu, co może prowadzić do odczytu poza zakresem przez get_unaligned_le16(), get_unaligned_le32() lub memcpy(). Poprawka odrzuca wartości krótsze niż minimalne wymagane dla każdego znanego typu TLV oraz odpowiedzi bez pola Command Complete Status.
- CVE-2026-98110Wysokie
W jądrze Linux w sterowniku Bluetooth btintel identyfikator firmware traktowany jest jako string zakończony NUL, mimo że jedyną granicą jest długość TLV. Jeśli wartość nie zawiera terminatora NUL, snprintf() może czytać poza odebraną odpowiedzią. Poprawka ogranicza konwersję do zadeklarowanej długości wartości TLV.
- CVE-2026-98109Średnie
W jądrze Linuxa wykryto podatność w podsystemie Bluetooth (hci_core) polegającą na wyścigu podczas rejestracji urządzenia. Kolejka pracy power_on jest uruchamiana przed pełną inicjalizacją struktur, co przy współbieżnym wykonywaniu może prowadzić do użycia niezainicjalizowanego mutexa w msft_do_close(), wywołując ostrzeżenie DEBUG_LOCKS i potencjalne problemy stabilności.
- CVE-2026-98108Wysokie
W jądrze Linux w Bluetooth L2CAP funkcja l2cap_le_connect_req() nie ustawiała poprawnie trybu kanału, co powodowało, że kanały z FLAG_DEFER_SETUP odpowiadały na L2CAP_LE_CONN_REQ z L2CAP_ECRED_CONN_RSP, co jest nieprawidłowe. Może to prowadzić do zapisu poza zakresem w l2cap_ecred_rsp_defer(). Poprawka ustawia chan->mode poprawnie i dodaje sprawdzenie trybu kanału oraz WARN_ON_ONCE zamiast zapisu poza zakresem.
- CVE-2026-98107Niskie ryzyko· EPSS 6%
W jądrze Linux w Bluetooth L2CAP funkcja l2cap_chan_connect() sprawdza limit oczekujących kanałów ECRED, ale liczy tylko kanały odroczone. Przy jednoczesnym połączeniu 6 gniazd w kolejności DDDDND (D=odroczone, N=nieodroczone) ostatnie może przekroczyć limit, powodując zapis poza zakresem w tablicy scid i wysłanie nieprawidłowego żądania ECRED_CONN_REQ. Poprawka uwzględnia nieodroczone kanały w liczeniu i dodaje WARN_ON_ONCE.
- CVE-2026-98106Niskie ryzyko· EPSS 4%
W jądrze Linux występuje błąd w module drm/pagemap, który pozwala na dwukrotną migrację tych samych stron prywatnych urządzenia (device-private folio). Jeśli strona jest w trakcie migracji z pamięci urządzenia do pamięci systemowej, ścieżka ewakuacji oparta na surowym PFN może wybrać tę samą stronę i spróbować migrować ją ponownie. Prowadzi to do pozostawienia nieobciążonej strony na liście LRU, co powoduje nieskończone ponawianie blokady i w konsekwencji soft lockup oraz RCU stall.
- CVE-2026-98105Niskie ryzyko· EPSS 8%
W jądrze Linuxa w sterowniku oa_tc6 poprawiono obsługę błędów przy przeciążonym ruchu sieciowym. Gdy bufor skb nie ma wystarczającej ilości miejsca na nadchodzące dane, ramka jest porzucana i sterownik szuka nowej ramki. Błąd alokacji bufora skb jest teraz traktowany jako błąd możliwy do odzyskania.
- CVE-2026-98103Niskie ryzyko· EPSS 6%
W jądrze Linuxa przekonwertowano strukturę ip_sf_list w protokole IGMP do mechanizmu RCU. Poprawka eliminuje potencjalny deadlock (zakleszczenie) i ostrzeżenia lockdep, które występowały, gdy funkcja ip_check_mc_rcu() próbowała uzyskać blokadę, która była już trzymana w tej samej ścieżce kodu.
- CVE-2026-98102Niskie ryzyko· EPSS 6%
W jądrze Linuxa w protokole IPv6 multicast naprawiono błąd w funkcji ip6_mc_del1_src() dotyczący list RCU. Poprzednio, gdy filtr źródłowy był usuwany, wskaźnik był modyfikowany przed upływem okresu przejściowego, co mogło powodować, że równoległe odczyty trafiały na listę tombstone zamiast na właściwą listę źródeł.
- CVE-2026-98101Niskie ryzyko· EPSS 6%
W jądrze Linuxa w protokole IPv6 multicast zmieniono funkcję ip6_mc_source() tak, aby używała mechanizmu copy-on-write z RCU. Poprzednio modyfikacje listy filtrów źródłowych były wykonywane w miejscu, co mogło prowadzić do odczytania rozerwanych adresów IPv6 lub zduplikowanych/pominiętych wpisów przez równoległych czytelników.
- CVE-2026-98099Średnie
W jądrze Linuxa w protokole IPv6 multicast naprawiono kilka miejsc, w których listy chronione przez RCU były aktualizowane bez użycia rcu_assign_pointer(). Poprawka zapewnia spójne użycie rcu_assign_pointer() wraz z odpowiednimi funkcjami pomocniczymi do dereferencji.
- CVE-2026-98098Średnie
W jądrze Linux naprawiono podatność w module TIPC, gdzie przy przekroczeniu limitu TIPC_MAX_PUBL (65535) publikacji usług lokalnych, typy usług protokołu (stan węzła, stan łącza) nie były już wstawiane do tablicy nazw. Prowadziło to do braku powiadomień o zdarzeniach oraz do dereferencji NULL w funkcji tipc_named_node_up() przy pustej liście publikacji.
- CVE-2026-98097Średnie
W jądrze Linuxa w protokole TIPC naprawiono problem wysyłania losowych bajtów dopełnienia w komunikatach RESET/ACTIVATE. Poprzednio używano strcpy(), co mogło wysyłać przypadkowe dane z bufora skb do zdalnego systemu. Teraz używane jest memcpy(), które kopiuje wyzerowane bajty dopełnienia.
- CVE-2026-98096Wysokie
W jądrze Linuxa w protokole IPv6 Segment Routing naprawiono problem z przywracaniem nagłówka sieciowego przed routingiem i forwardingiem. Poprzednio, gdy nagłówek SRH nie następował bezpośrednio po nagłówku IPv6, offset sieciowy mógł być ujemny, co mogło prowadzić do przepełnień bufora podczas forwardowania.
- CVE-2026-98095Średnie
W jądrze Linux w funkcji tpacket_parse_header() (podsystem af_packet) wartość tp_len pochodząca od użytkownika (typ u32) była rzutowana na typ int. Wartość większa niż INT_MAX stawała się liczbą ujemną, która przechodziła sprawdzenie zakresu i była zwracana do funkcji sock_sendmsg_nosec(), wywołując BUG().
- CVE-2026-98094Średnie
W jądrze Linux w sterowniku fbtft (staging) blokada dirty_lock nie była bezpieczna dla przerwań IRQ. Funkcja fbtft_mkdirty() może być wywołana ze ścieżki renderowania fbcon w kontekście hardirq, podczas gdy fbtft_deferred_io() używa tej samej blokady w kontekście workqueue z włączonymi przerwaniami lokalnymi, co prowadzi do możliwej inwersji blokad i zakleszczenia.
- CVE-2026-98093Wysokie
W jądrze Linux w sterowniku ASoC fsl_micfil funkcje hw_params() i hw_free() włączały i wyłączały zegar mclk bez zachowania równowagi. Rdzeń PCM nie gwarantuje parowania 1:1, więc hw_free() może wykonać się bez hw_params(), a hw_params() może być wywołane wielokrotnie, co powoduje ostrzeżenie "already disabled" lub wyciek referencji włączenia zegara.
- CVE-2026-98092Średnie
W jądrze Linux w sterowniku ASoC amd yc funkcja acp6x_pdm_dma_close() nie zwalnia bufora runtime->private_data przydzielonego w acp6x_pdm_dma_open(). Brakuje wywołania kfree, co powoduje wyciek pamięci.
- CVE-2026-98091Średnie
W jądrze Linux w systemie plików btrfs podczas tworzenia pierwszego fragmentu metadanych dla systemu plików sprout funkcja create_chunk() dodaje nowe urządzenie do listy dev_update_list transakcji. Jeśli utworzenie kolejnego fragmentu systemowego się nie powiedzie, btrfs_init_new_device() przerywa transakcję i zwalnia urządzenie, gdy post_commit_list jest nadal połączona, co powoduje ostrzeżenie i pozostawia listę transakcji wskazującą na zwolnioną pamięć.
- CVE-2026-98090Średnie
W jądrze Linux w systemie plików btrfs funkcja btrfs_init_new_device() przełącza wskaźniki latest_dev i s_bdev z urządzenia seed na nowe urządzenie sprout przed utworzeniem pierwszych zapisywalnych fragmentów. Jeśli utworzenie fragmentu lub konfiguracja sprout się nie powiedzie, ścieżka błędu zwalnia nowe urządzenie bez przywrócenia tych wskaźników, co może spowodować odwołanie do zwolnionej pamięci w btrfs_show_devname() i awarię.
- CVE-2026-98089Niskie ryzyko· EPSS 6%
W jądrze Linux w module bonding (tryb alb) funkcja alb_determine_nd() używa icmp6_hdr(skb) do inspekcji nagłówków ICMPv6, ale w ścieżkach transmisji (np. pakiety wysyłane przez AF_PACKET / surowe gniazda lub przekazywane) skb->transport_header nie jest gwarantowanie zainicjalizowany. pskb_network_may_pull() nie ustawia przesunięcia nagłówka transportowego, więc dereferencja icmp6_hdr(skb) może uzyskać dostęp do pamięci poza zakresem.
- CVE-2026-98088Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku scsi mpt3sas funkcja _base_assign_reply_queues() wywołuje cpumask_of_node() z wartością zwróconą przez dev_to_node(), która może wynosić NUMA_NO_NODE (-1) w systemach bez informacji o topologii NUMA dla urządzenia PCI. Przekazanie -1 do cpumask_of_node() powoduje odczyt poza zakresem tablicy node_to_cpumask_map[-1], wykryty przez UBSAN.
- CVE-2026-98087Niskie ryzyko· EPSS 5%
W jądrze Linux występuje błąd w planistyce czasu rzeczywistego (sched/rt,dl), który powoduje, że zadania RT z wywołaniem migrate_disable() pozostają na liście zadań możliwych do przeniesienia (rq->rt.pushable_tasks), mimo że nie mogą zostać przeniesione na inny CPU. W efekcie balanser RT wielokrotnie próbuje przenieść takie zadanie, co kończy się niepowodzeniem i marnowaniem czasu procesora — w opisanym przypadku nawet 37 ms z 89 ms okna czasowego zostało zużyte na nieudane próby przeniesienia.
- CVE-2026-98086Niskie ryzyko· EPSS 9%
W jądrze Linux w podsystemie ALSA ump funkcja snd_ump_parse_endpoint() ustawia ump->parsed przy każdym wyjściu, także błędnym, zanim wywołujący podłączy starsze urządzenie rawmidi. Funkcja ump_handle_ep_name_msg() traktuje wtedy parsed jako "legacy_rmidi jest aktywne" i wywołuje ump_legacy_set_rawmidi_name(), która wykonuje snprintf() na ump->legacy_rmidi->name. Jeśli pakiet UMP nadejdzie w tym oknie (ścieżka IRQ z snd_ump_receive), legacy_rmidi jest nadal NULL, co powoduje dereferencję null w snprintf.
- CVE-2026-98085Niskie ryzyko· EPSS 5%
W jądrze Linuxa w mechanizmie precyzyjnego cofania (backtracking) dla instrukcji BPF_LD | BPF_{IND,ABS} nie obsłużono przypadku niejawnego wyjścia z podprogramu. Powodowało to kontynuowanie cofania w ramce wywołującego przy przetwarzaniu instrukcji w ramce wywoływanego, co prowadziło do błędów segmentacji lub niepoprawnego przycinania stanu.
- CVE-2026-98084Niskie ryzyko· EPSS 5%
W jądrze Linuxa w mechanizmie precyzyjnego cofania dla wywołań bpf_loop() występował błąd: przy drugim odwiedzeniu wywołania, precyzja rejestru R1 (licznik iteracji) była resetowana przez przetwarzanie poprzedzającego BPF_EXIT. Skutkowało to wstrzyknięciem punktu kontrolnego bez oznaczenia R1 jako precyzyjnego, co mogło pozwolić weryfikatorowi na zaakceptowanie niebezpiecznych programów.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

