Podatności Linux kernel
11 210 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-99085Nieznane
W jądrze Linux naprawiono błąd w schedulerze sched_ext, który powodował zawieszenie przy wyłączaniu CPU, gdy zadania wygasającego procesora pozostawały w kolejce BPF schedulera. Zadania te były nadal liczone w runqueue, ale nieaktywny CPU nie wywoływał ops.dispatch() i nie mógł ich przejąć, co blokowało wątek hotplug i cpu_down() trzymający cpu_hotplug_lock. Poprawka ponownie kolejkuje zadania z offline'owanego rq na lokalny DSQ, aby balance_push() mógł je przenieść.
- CVE-2026-99084Nieznane
W jądrze Linux naprawiono problem w iterate_dir(), gdzie blokada i_rwsem katalogu była trzymana podczas odczytu katalogu, nawet jeśli katalog jest niezmienny i nigdy nie jest usuwany. Dla katalogu instancji nullfs (współdzielonego przez wiele przestrzeni nazw montowania i wątków jądra) złośliwy czytelnik mógł zablokować tę blokadę na dowolnie długo, blokując operacje mkdir, wyszukiwania i montowania dla innych użytkowników. Dodano flagę FOP_IMMUTABLE, która pozwala pominąć blokadę dla takich katalogów.
- CVE-2026-99075Nieznane
W jądrze Linux w module rust_binder występuje błąd związany z aktualizacją licznika referencji węzła przy zakończeniu wątku. Gdy wątek kończy się przez BINDER_THREAD_EXIT, oczekująca aktualizacja licznika referencji mogła zostać utracona, ponieważ funkcje Node::cancel() i NodeWrapper::cancel() były puste. Prowadzi to do desynchronizacji stanu dostarczania węzła i braku powiadomienia przestrzeni użytkownika, przez co węzeł może nigdy nie zostać zwolniony.
- CVE-2026-99073Nieznane
W jądrze Linux w podsystemie IPv4 występuje błąd null-ptr-deref podczas zrzutu wyjątków FIB, gdy grupa nexthop ulega zmniejszeniu. Funkcja fib_dump_info_fnhe() używa fib_info_num_path() jako granicy pętli, a następnie fib_info_nhc() niezależnie przeładowuje nh->nh_grp; jeśli RTM_NEWNEXTHOP zamieni grupę na mniejszą, fib_info_nhc() zwróci NULL i zrzut go zdereferencjonuje. Poprawka zatrzymuje iterację, gdy indeksowana ścieżka jest nieobecna.
- CVE-2026-99069Nieznane
W jądrze Linux w sterowniku Input: ati_remote2 występuje błąd typu confusion w procedurach obsługi atrybutów urządzenia. Atrybuty channel_mask i mode_mask zostały przeniesione do urządzeń usb_interface, ale funkcje show i store nadal wywołują to_usb_device() na wskaźniku do struct usb_interface, tworząc nieprawidłowy wskaźnik usb_device. Poprawka używa to_usb_interface() bezpośrednio w procedurach obsługi atrybutów.
- CVE-2026-99068Nieznane
W jądrze Linux w sterowniku ALSA: ctxfi występuje wyciek pamięci podczas czyszczenia mapowania wejść DAO. Funkcja dao_clear_input() usuwa wpisy mapowania z listy i ustawia ich wskaźniki na NULL, ale nie zwalnia zaalokowanej tablicy, co powoduje wyciek pamięci przy każdym wywołaniu. Poprawka przechowuje wskaźnik bazowy alokacji i zwalnia tablicę po usunięciu wpisów z listy.
- CVE-2026-99066Nieznane
W jądrze Linux funkcja init_can_skb() nie inicjalizuje nagłówków skb (mac_header pozostaje 0xFFFF) po usunięciu wywołań skb_reset_*_header(). Gdy taki skb trafi do packet_rcv_spkt() (SOCK_PACKET), obliczenie długości push powoduje przepełnienie i wywołuje skb_under_panic, prowadząc do pełnej paniki jądra.
- CVE-2026-99065Nieznane
W jądrze Linux w podsystemie cgroup/cpuset występuje wyścig podczas wyłączania CPU: cpu_active_mask jest aktualizowana przed cpuset_handle_hotplug(), przez co guarantee_active_cpus() może wywołać dereferencję NULL dla top cpuset. Poprawka przywraca sprawdzenie NULL dla cs.
- CVE-2026-99062Nieznane
W jądrze Linux w virtio_transport_read_skb() podsystemu vsock/virtio licznik rx_bytes jest zmniejszany o pełną długość pakietu zamiast tylko o nieprzeczytane bajty, co powoduje niedomiar licznika. Prowadzi to do błędnych raportów SIOCINQ (np. -40), błędnego zachowania recv/poll oraz ukrywania zakolejkowanych danych.
- CVE-2026-99060Nieznane
W jądrze Linux sterownik wifi mt76 dla mt7603 publikuje prywatny globalny WCID stacji bez wcześniejszego wywołania mt76_wcid_init(). Pierwsza ramka wstrzyknięta przez interfejs monitora trafia do __skb_queue_tail() z niezainicjalizowaną strukturą sk_buff_head i dereferencjonuje NULL prev, powodując oops.
- CVE-2026-99055Nieznane
W jądrze Linux stos TCP w trybie zerocopy receive mógł wywołać dereferencję NULL w can_map_frag(), gdy następny skb zawierał fragment net_iov (DMABUF lub IOURING). Funkcja skb_frag_page() zwraca NULL dla net_iov, a can_map_frag() używa tej wartości w PageCompound(). Poprawka odrzuca wszystkie fragmenty net_iov przed wywołaniem skb_frag_page().
- CVE-2026-99048Nieznane
W jądrze Linux sterownik gve przy wyłączaniu pul XSK wywoływał niezablokowane wersje napi_disable i napi_enable, mimo że blokada netdev była już pozyskana przed ndo_bpf. Prowadziło to do zakleszczenia, ponieważ wątek próbował ponownie pozyskać blokadę, którą już posiadał. Poprawka przełącza wywołania NAPI na wersje zablokowane.
- CVE-2026-99047Nieznane
W jądrze Linux w sterowniku gve występuje wyciek buforów XSK podczas zatrzymywania kolejek. GVE nie zwalnia buforów XSK przypisanych do buf_state przy resetowaniu stanu pierścienia, co powoduje wyciek wszystkich buforów wysłanych do karty sieciowej.
- CVE-2026-99044Nieznane
W jądrze Linux w sterowniku ice występuje użycie po zwolnieniu (use-after-free) przy czyszczeniu portu dynamicznego. Funkcja ice_dealloc_dynamic_port() zwalnia VSI przed odczytaniem indeksu potrzebnego do usunięcia wpisu z xarray, co prowadzi do użycia po zwolnieniu.
- CVE-2026-99029Nieznane
W jądrze Linux sterownik sparx5 w funkcji sparx5_tc_matchall_replace() alokuje strukturę sparx5_mall_entry dla każdego offloadowanego filtra matchall i dodaje ją do listy, ale sparx5_tc_matchall_destroy() usuwa wpis z listy bez zwalniania pamięci. Powoduje to wyciek pamięci przy każdym usuniętym filtrze mirror i goto matchall.
- CVE-2026-99028Nieznane
W jądrze Linux sterownik axienet (net: xilinx) w ścieżce dmaengine pre-submituje bufory RX i utrzymuje bufory TX, których SKB są mapowane DMA i zwalniane tylko w callbackach ukończenia. Przy ndo_stop() dmaengine_terminate_sync() przerywa deskryptory bez uruchamiania callbacków, przez co sterownik zwalnia tylko powłoki pierścienia, wyciekając SKB i mapowania DMA przy każdym ifdown.
- CVE-2026-99026Nieznane
W jądrze Linux podsystem team funkcja bc_transmit() wysyła oryginalny skb przez ostatni port zdolny do transmisji. Gdy żaden port nie może transmitować, zwraca false bez zużycia skb, ale team_xmit() nadal zwraca NETDEV_TX_OK, przez co wysyłki AF_PACKET zachowują skb i jego obciążenie pamięci zapisu gniazda.
- CVE-2026-99023Nieznane
W jądrze Linux sterownik pwrseq-pcie-m2.c wywołuje of_regulator_bulk_get_all(), która alokuje tablicę konsumentów i przekazuje ją wywołującemu, oczekując jej zwolnienia. Sterownik nigdy jej nie zwalniał, co prowadziło do wycieku pamięci.
- CVE-2026-99021Nieznane
W jądrze Linux funkcja of_regulator_bulk_get_all() zwraca tablicę, w której wpisywany jest tylko konsument, bez nazwy zasilania. Gdy taka tablica trafi do regulator_bulk_enable(), a zasilanie nie włączy się, funkcja odczytuje niezainicjalizowaną pamięć. Poprawka kopiuje nazwy do własnej alokacji tablicy i usuwa stały bufor 64 bajtów na stosie.
- CVE-2026-99020Nieznane
W jądrze Linux sterownik tps6594-regulator dla TPS65224 BUCK2-4 podaje 4 jako n_linear_ranges, podczas gdy tablica tps65224_bucks_2_3_4_ranges[] ma tylko dwa wpisy. Powoduje to odczyt poza tablicą przy wyszukiwaniu selektorów powyżej 0x45 podczas normalnej rejestracji. Poprawka używa ARRAY_SIZE(), aby liczba zawsze odpowiadała tabeli.
- CVE-2026-99004Nieznane
W jądrze Linux w drm/imagination preallokacja tablicy stron jest błędnie obliczana na podstawie device_addr + sgt_offset z wyłącznym końcem zakresu. Powoduje to alokację o jedną tablicę za dużo oraz możliwe niedomiarowanie różnicy indeksów przy przekraczaniu granicy tablicy stron, co prowadzi do ogromnej preallokacji i wyczerpania pamięci.
- CVE-2026-99003Nieznane
W jądrze Linux w drm/panthor funkcja panthor_ioctl_group_create() waliduje liczbę kolejek względem stałej MAX_CS_PER_CSG, a nie względem liczby slotów zgłoszonych przez firmware. Jeśli firmware zgłasza mniej slotów, nieuprzywilejowany użytkownik może zażądać większej liczby kolejek, co prowadzi do użycia niezainicjalizowanego interfejsu strumienia i potencjalnej awarii.
- CVE-2026-99001Nieznane
W jądrze Linux w komponencie drm/xe/i2c funkcja xe_i2c_remove() nie anulowała ani nie opróżniała zaplanowanej pracy i2c->work przed wyrejestrowaniem adaptera i urządzeń klienckich. Praca wciąż będąca w kolejce lub uruchomiona mogła odwołać się do zwolnionego adaptera lub zwolnionej pamięci struktury xe_i2c, powodując błąd use-after-free. Poprawka przenosi wyrejestrowanie notyfikatora szyny przed demontaż klientów i anuluje pracę zaraz po nim.
- CVE-2026-99000Nieznane
W jądrze Linux w sterowniku drm/xe występuje błąd w rozliczaniu shrinkera przy zagnieżdżonych przypięciach zewnętrznych buforów (dma-buf). Funkcje xe_bo_pin_external() i xe_bo_unpin_external() obsługują zagnieżdżone przypięcia, ale wywołania xe_ttm_tt_account_subtract() i xe_ttm_tt_account_add() są wykonywane bezwarunkowo przy każdym wywołaniu, zamiast tylko przy przejściu do i ze stanu przypięcia. Powoduje to wielokrotne odejmowanie stron bufora od licznika shrinkera, co prowadzi do niedomiaru (underflow) i zawyżenia liczby stron możliwych do odzyskania, a w konsekwencji do nadmiernego wywoływania shrinkera pod presją pamięci.
- CVE-2026-98998Nieznane
W jądrze Linux w sterowniku drm/bridge th1520-dw-hdmi funkcja th1520_dw_hdmi_remove() odczytywała wskaźnik z platform drvdata jako struct dw_hdmi * zamiast struct th1520_hdmi *, przez co przekazywała do dw_hdmi_remove() niewłaściwy wskaźnik. W efekcie proces zwalniania zasobów (teardown) działał na błędnym obiekcie.
- CVE-2026-98997Nieznane
W jądrze Linux w module drm/amdgpu/userq funkcja amdgpu_userq_get_doorbell_index() przypinała dowolny BO przekazany jako doorbell_handle do domeny doorbell. Dla zwykłego BO mechanizm TTM przenosił go przez ttm_bo_move_null() i tracił jego zawartość, co pozwalało klientowi uszkodzić bufor współdzielony przez innego klienta na tym samym urządzeniu.
- CVE-2026-98996Nieznane
W jądrze Linux naprawiono błąd w funkcji propagate_mount_busy(), która nie sprawdzała poprawnie kopii montowań z wieloma dziećmi lub pojedynczym dzieckiem niebędącym nakładką. W wyniku tego synchroniczne odmontowanie mogło zakończyć się sukcesem mimo że montowanie było nadal używane, co prowadziło do odłączenia aktywnego montowania. Problem dotyczył przestrzeni nazw montowań i mógł być wywołany przez kontener.
- CVE-2026-98994Nieznane
W jądrze Linux funkcja statmount_mnt_basic() odczytywała identyfikatory rodzica przez m->mnt_parent z namespace_sem, co jest bezpieczne tylko dla mountów w przestrzeni nazw. Dla mountu odmontowanego celowo i utrzymywanego tylko przez deskryptor pliku (STATMOUNT_BY_FD) końcowe mntput() mogło zwolnić rodzica równolegle, powodując wyłuskanie już zwolnionego mountu.
- CVE-2026-98989Nieznane
W jądrze Linux naprawiono podatność w obsłudze przestrzeni nazw mountów, gdzie rekurencyjne bind-mountowanie plików przestrzeni nazw (nsfs) mogło prowadzić do cyklicznych zależności i wycieku pamięci. Funkcja do_loopback() sprawdzała tylko początkowy dentry, a przy MS_REC kopiowała pliki przestrzeni nazw poniżej źródła bez weryfikacji, czy nie tworzą one pętli. Umożliwiało to procesowi w starszej przestrzeni nazw wielokrotne wyciekanie pamięci poprzez stackowanie bind-mountów.
- CVE-2026-98987Nieznane
W jądrze Linux funkcja attach_recursive_mnt() prealokuje punkt montowania dla korzenia najwyższego montowania źródła, ale pętla przechodząca przez łańcuch montowań nie sprawdza najwyższego montowania. Jeśli najwyższe montowanie jest jedynym plikiem przestrzeni nazw montowań w łańcuchu, istniejące montowanie zostaje przypięte pod korzeniem pliku przestrzeni nazw (dentry nsfs), przez co staje się niedostępne i nie można go zsynchronizować odmontować. Prowadzi to do błędnego zachowania przy move_mount i umount.
- CVE-2026-98986Nieznane
W jądrze Linux funkcja mnt_ns_release() usuwa znaczniki fanotify przestrzeni nazw montowań w kontekście procesu, ale mnt_ns_tree_remove() przekazuje referencję do call_rcu(), przez co znaczniki są usuwane z softirq RCU. Powoduje to błąd „sleeping function called from invalid context” oraz ostrzeżenia lockdep dotyczące blokady connectora. Wystarczy grupa fanotify ze znacznikiem FAN_MARK_MNTNS na przestrzeni nazw montowań innego zadania.
- CVE-2026-98983Nieznane
W jądrze Linux ksys_unshare() wywołuje put_nsproxy() na nsproxy, które nigdy nie zostało zainstalowane, gdy set_cred_ucounts() zawiedzie. Powoduje to przejście liczników referencji nowych przestrzeni nazw z zera na minus jeden oraz utratę referencji do przestrzeni nazw współdzielonych z wywołującym. W efekcie przestrzenie nazw, w których żyje wywołujący, przestają być widoczne w listns().
- CVE-2026-98973Nieznane
W jądrze Linux w podsystemie drm/bridge funkcja drm_bridge_add() przy ponownym dodawaniu wcześniej usuniętego mostka usuwa go z bridge_lingering_list bez trzymania bridge_lock. Listy bridge_list i bridge_lingering_list są chronione przez bridge_lock i modyfikowane współbieżnie przez drm_bridge_remove() oraz __drm_bridge_free(), a także odczytywane przez plik debugfs 'bridges'. Wykonywanie testu list_empty() i list_del_init() poza blokadą może uszkodzić którąś z list.
- CVE-2026-98972Nieznane
W jądrze Linux w podsystemie cgroup/cpuset funkcja is_in_v2_mode() może być wywołana w kontekście ponownego wiązania nowego systemu plików cgroup z nieaktualnym wskaźnikiem cpuset_cgrp_subsys.root. Aby uniknąć potencjalnego use-after-free, wprowadzono nową flagę cpuset_v2_mode ustawianą przy użyciu opcji montowania cpuset_v2_mode, zapisywaną tylko gdy cpuset_bind() działa na stabilnej wartości cpuset_cgrp_subsys.root. Funkcja is_in_v2_mode() odczytuje teraz tę flagę zamiast bezpośrednio odwoływać się do cpuset_cgrp_subsys.root.
- CVE-2026-98966Nieznane
W jądrze Linux w module bonding przy wymianie programu XDP nie jest zwalniane odwołanie do starego programu BPF, zarówno przy przejściu do braku programu, jak i przy zamianie na inny program. Powoduje to wyciek programów BPF.
- CVE-2026-98963Nieznane
W jądrze Linux w btrfs funkcja btrfs_encoded_read_regular_fill_pages() może wywołać btrfs_uring_read_extent_endio() i zwrócić status I/O, jeśli wszystkie bio zakończą się przed powrotem. Ujemny errno powoduje podwójne odblokowanie i zwolnienie zasobów przez btrfs_uring_read_extent() oraz btrfs_uring_read_finished().
- CVE-2026-98962Nieznane
W jądrze Linux w btrfs po wywołaniu btrfs_uring_read_extent() wywołujący zawsze przechodzi do out_acct, pomijając kfree(data->iov). Jest to poprawne tylko dla -EIOCBQUEUED, gdzie ścieżka odroczona zarządza iov; w przypadku błędu powoduje to wyciek pamięci.
- CVE-2026-98961Nieznane
W jądrze Linux w funkcji btrfs_uring_read_extent() występował błąd zwalniania blokad. W przypadku niepowodzenia alokacji tablicy stron zwracano -ENOMEM bez zwolnienia blokady inode i extent, co prowadziło do zakleszczenia.
- CVE-2026-98960Nieznane
W jądrze Linux funkcja btrfs obsługująca io_uring pozostawiała zaalokowane dane w PDU cmd przy zwracaniu -EAGAIN, co powodowało wyciek pamięci przy anulowaniu żądania lub zamknięciu pierścienia. Poprawka zwalnia dane przy każdym wyjściu.
- CVE-2026-98958Nieznane
W jądrze Linux sterownik wifi mt76 inkrementował licznik non_aql_packets na wcid linku, na którym ramka została zakolejkowana, a dekrementował na linku zgłoszonym w ukończeniu. Dla peera MLO linki mogły się różnić, powodując dryf licznika i blokadę stacji.
- CVE-2026-98957Nieznane
W jądrze Linux sterownik mt7915 nie wyłączał rx napi przed zniszczeniem go podczas usuwania urządzenia, co powodowało ostrzeżenia i niestabilność systemu na MT7916. Poprawka wyłącza napi w mt7915_stop_hardware().
- CVE-2026-98954Nieznane
W jądrze Linux naprawiono podatność w funkcji __virtio_net_hdr_to_skb(), która polegała na pomijaniu analizy nagłówków pakietów GSO bez flagi VIRTIO_NET_HDR_F_NEEDS_CSUM. Prowadziło to do odczytu poza granicami bufora (out-of-bounds) w skb_gso_transport_seglen() przy pakietach z nieprawidłowym nagłówkiem sieciowym lub opcjami IP/rozszerzeniami IPv6.
- CVE-2026-98953Nieznane
W jądrze Linux funkcja devlink_rel_nested_in_notify_work_schedule() pobierała referencję na devlink_rel i kolejkowała pracę, ignorując wynik schedule_delayed_work(). Jeśli praca była już w toku, dodatkowa referencja była wyciekana wraz z obiektem devlink_rel.
- CVE-2026-98951Nieznane
W jądrze Linux w obsłudze ptrace dla architektury RISC-V bufor rejestrów nie był zerowany przed kopiowaniem danych od użytkownika. Żądanie PTRACE_SETREGSET z krótkim iov_len pozostawiało niezainicjalizowane dane na stosie, które następnie były walidowane i kopiowane do stanu procesu docelowego.
- CVE-2026-98949Nieznane
W jądrze Linux w sterowniku drm/imagination funkcja pvr_vm_gpuva_remap() przy dzieleniu istniejącego mapowania niepotrzebnie pobierała referencję GEM dla każdej części (wyciek pamięci) oraz błędnie podłączała części do nowego obiektu vm_bo zamiast do oryginalnego, co wywoływało ostrzeżenie drm_gpuva_link().
- CVE-2026-98948Nieznane
W jądrze Linux w sterowniku mlxsw spectrum_flower funkcja mlxsw_sp_flower_tmplt_create() podczas parsowania szablonu mogła pozyskać rejestry zakresu portów, które nigdy nie były zwalniane, ponieważ lokalna struktura rulei nie przechodziła przez mlxsw_sp_acl_rulei_destroy().
- CVE-2026-98947Nieznane
W jądrze Linux występuje wyciek pamięci w funkcji vmci_transport_recv_dgram_cb() podczas zamykania gniazda datagramowego. Pakiety trafiają do backlogu gniazda, a po wyczyszczeniu kolejki odbiorczej funkcja __release_sock() przenosi je z powrotem do kolejki odbiorczej, co prowadzi do wycieku pamięci. Problem został naprawiony poprzez dodanie czyszczenia kolejki odbiorczej w destruktorze gniazda.
- CVE-2026-98946Nieznane
W jądrze Linux w sterowniku drm/vc4 występuje problem z wyścigiem podczas przejścia w stan uśpienia (runtime suspend). Funkcja vc4_irq_disable() wyłącza źródła przerwań V3D i wywołuje synchronize_irq(), ale na kontrolerze ARMCTRL (RPi 0-3) nie gwarantuje to wyciszenia handlera — przerwanie może zostać obsłużone po odcięciu zasilania domeny V3D, gdy odczyty rejestrów zwracają 0xdeadbeef. Może to spowodować zaplanowanie pracy vc4_overflow_mem_work() po jej anulowaniu. Poprawka polega na wyłączeniu linii przerwania na czas przejścia PM i zrównoważeniu instalacji/żądania IRQ.
- CVE-2026-98939Nieznane
W jądrze Linux naprawiono problem możliwego zakleszczenia (deadlock) wykrywanego przez lockdep podczas kurczenia puli stron TTM przez kswapd. Przyczyną była niepotrzebna alokacja pamięci (GFP_KERNEL) w ścieżce zwalniania tablic stron, wykonywana pod blokadą mmap_read_lock. Usunięto kopiowanie strony PMD, dzięki czemu alokacja zniknęła, a problem blokad został rozwiązany.
- CVE-2026-98938Nieznane
W jądrze Linux w warstwie Rust irq występuje błąd polegający na tym, że RegistrationInner jest przekazywany jako cookie do request_irq, zanim jego pola zostaną zainicjalizowane. Może to prowadzić do odczytu niezainicjalizowanej pamięci w funkcji obsługi przerwania.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

