Podatności Linux kernel
10 391 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-99184Nieznane
W jądrze Linux w sterowniku accel/rocket funkcja rocket_remove() zmniejsza liczbę rdzeni (num_cores) przed wyszukaniem slotu, przez co ostatni rdzeń nie jest odnajdywany i nie jest usuwany. Prowadzi to do wycieku stanu i w konsekwencji do zapisu poza tablicą rdev->cores przy ponownym bindowaniu rdzeni na RK3588.
- CVE-2026-99183Nieznane
W jądrze Linux w sterowniku accel/rocket funkcja sched_to_core() przeszukuje tylko zakres rdev->num_cores, który jest zmniejszany przy odłączaniu rdzenia. Odłączenie rdzenia innego niż ostatni powoduje, że rdzenie za nim wypadają z wyszukiwania, a sched_to_core() zwraca NULL mimo że rdzeń nadal działa. Brak sprawdzenia wyniku w rocket_job_run() i rocket_job_timedout() prowadzi do dereferencji NULL (KASAN: null-ptr-deref).
- CVE-2026-99172Nieznane
W jądrze Linux w funkcji create_ipc_ns() występuje wyciek zasobów: przy niepowodzeniu konfiguracji sysctl mqueue/ipc lub msg_init_ns() montowanie mqueue jest zwalniane zwykłym mntput() zamiast kern_unmount(). Ponieważ montowanie jest długoterminowe (MNT_NS_INTERNAL), licznik spada do zera, ale montowanie i superblok mqueue nigdy nie zostają zwolnione.
- CVE-2026-99168Nieznane
W jądrze Linux moduł mshv_vtl sprawdza globalną flagę mshv_has_reg_page przed wyborem strony rejestrów żądanego CPU. Przy mieszanych wynikach konfiguracji na poszczególnych CPU sprawdzenie przechodzi nawet dla CPU bez strony rejestrów, co prowadzi do wywołania get_page(NULL) podczas błędu odwzorowania z przestrzeni użytkownika.
- CVE-2026-99162Nieznane
W podsystemie GPIO shared występuje błąd use-after-free podczas dodawania współdzielonych proxy. Nazwa urządzenia (dev_id) wskazuje na ciąg znaków obiektu kobject, który może zostać zwolniony wcześniej niż tablica wyszukiwania GPIO.
- CVE-2026-99151Nieznane
W jądrze Linux w drm/amd/display funkcje allocate_usb4_bandwidth_for_stream() i allocate_usb4_bandwidth() używają ASSERT(stream->sink) przed dereferencją stream->sink->link. Ponieważ ASSERT jest usuwany w buildach produkcyjnych, NULL stream->sink powoduje dereferencję NULL.
- CVE-2026-99149Nieznane
W jądrze Linux w sterowniku drm/amdgpu funkcja amdgpu_gem_userptr_ioctl() przy niepowodzeniu amdgpu_hmm_range_alloc() zwraca -ENOMEM i pomija ścieżkę sprzątania. W efekcie wycieka obiekt GEM, referencja bo->parent na korzeniu VM oraz rejestracja notifiera MMU.
- CVE-2026-99146Nieznane
W jądrze Linux w sterowniku drm/i915/dmc dla nagłówka firmware DMC w wersji 3 adres ładowania firmware jest przechowywany w dmc_info->start_mmioaddr i używany przez dmc_load_program(). W przeciwieństwie do tablicy adresów MMIO adres ładowania nie jest walidowany, co może prowadzić do użycia nieprawidłowego adresu.
- CVE-2026-99145Nieznane
W jądrze Linux w sterowniku drm/xe funkcja xe_bo_set_purgeable_shrinker() bezwarunkowo przenosi strony między licznikami shrinkable i purgeable. Gdy stan purgeable przypiętego BO zmienia się (np. przez madvise DONTNEED na VMA BO przypiętego jako bufor scanout), jeden licznik ulega niedomiarowi, a drugi pozostaje trwale zawyżony po unpin.
- CVE-2026-99144Nieznane
W jądrze Linux w module sched_ext odroczone ponowne wstawienie do kolejki może odczytać zwolniony user DSQ. Żądanie pozostaje na liście odroczonej CPU do czasu przejęcia przez run_deferred(), a callback RCU zwalniający DSQ zakłada, że okres karencji go opróżnił, jednak run_deferred() rozpoczęty po rozpoczęciu karencji może odłączyć żądanie tuż przed sprawdzeniem i odczytać identyfikator zwolnionego DSQ.
- CVE-2026-99141Nieznane
W jądrze Linux występuje błąd w podsystemie ftrace, gdzie przełączanie na tracer bez zdefiniowanych flag (np. hwlat, irqsoff, wakeup) powoduje ustawienie wskaźnika current_trace_flags na NULL. Jeśli bufor pierścieniowy nadal zawiera wpisy function_graph z poprzedniego tracera, ich wyświetlenie (np. przez cat trace) prowadzi do dereferencji NULL i paniki jądra.
- CVE-2026-99137Nieznane
W jądrze Linux w podsystemie cifs funkcja cifs_do_truncate aktualizuje i_size bez ważnego uchwytu pliku. Gdy find_writable_file() zwróci null, rozmiar inode jest ustawiany na 0 mimo braku faktycznego obcięcia pliku na serwerze, co prowadzi do niespójności.
- CVE-2026-99129Nieznane
W jądrze Linux w module SELinux naprawiono błąd w sprawdzaniu uprawnień tokenów BPF. Wielokrotne wyszukiwanie SID twórcy bpffs przy użyciu deskryptora pliku tokenu mogło prowadzić do problemów typu TOCTOU, jeśli użytkownik zmienił deskryptor przekazany do jądra.
- CVE-2026-99125Nieznane
W jądrze Linux w podsystemie s390/pai naprawiono obsługę wielokrotnych wywołań callbacku zatrzymania PMU. Jądro chroni się przed wysokim obciążeniem próbkowania przez throttling, co może skutkować dwoma kolejnymi wywołaniami PMU->stop(); poprawka sprawdza bit PERF_HES_STOPPED i blokuje nieobsługiwane wywołanie ioctl PERF_EVENT_IOC_PERIOD.
- CVE-2026-99120Nieznane
W jądrze Linux naprawiono błąd w KVM (x86/mmu), gdzie nieoczekiwany bit SS w kodach błędów #NPF powodował dostęp poza zakresem w permission_fault(), co objawiało się ostrzeżeniami WARN lub raportami UBSAN. Problem występował podczas uruchamiania Hyper-V z Windows 11 i został rozwiązany poprzez odrzucanie nieznanych bitów oraz zachowanie bitu SS przy odzwierciedlaniu błędu do L1.
- CVE-2026-99119Nieznane
W jądrze Linux w sterowniku drm/amdgpu/userq poprawiono walidację buforów BO (buffer objects) dla userq. Wcześniej pętla nie iterowała po indywidualnej liście wywłaszczonych buforów, przez co bufory utworzone i wywłaszczone przed utworzeniem userq nigdy nie trafiały do ponownego uzbrojenia ogrodzenia ewakuacji. Dodano także brakujące referencje do BO przed operacjami drm_exec.
- CVE-2026-99111Nieznane
W jądrze Linux w kliencie SMB (cifs) naprawiono błąd powodujący uszkodzenie danych przy równoczesnych zapisach i operacji O_TRUNC. Funkcja cifs_do_truncate() opróżniała brudne strony i obcinała plik na serwerze bez blokady i_rwsem lub invalidate_lock, przez co równoczesny zapis mógł utworzyć nowe brudne strony, które następnie były po cichu odrzucane. Poprawka wprowadza blokady zapewniające atomowość sekwencji opróżniania, obcinania i zmiany rozmiaru.
- CVE-2026-99108Nieznane
W systemie plików NTFS jądra Linux funkcja ntfs_trim_fs() wyrównuje początek wolnego zakresu w górę do ziarnistości discard, ale długość discard oblicza przez wyrównanie w dół oryginalnej długości zakresu. Gdy początek zakresu nie jest wyrównany, wynikowy zakres discard może wykroczyć poza wolny obszar i objąć przydzielone klastry, które zostaną wyzerowane.
- CVE-2026-99104Nieznane
W schedulerze sched_ext jądra Linux funkcja scx_bypass() zgłasza roszczenie bypass dispatch tylko dla schedulera, którego głębokość zmienia się z zera na jeden, ale nie propaguje roszczenia do potomków. Powoduje to wyciek roszczenia przy włączaniu/wyłączaniu pod-schedulera w trakcie PM suspend, prowadząc do WARN_ON_ONCE lub zadań pozostawionych na DSQ bypass bez konsumenta.
- CVE-2026-99102Nieznane
W systemie plików NTFS jądra Linux funkcja ntfs_setattr_size() aktualizuje i_size i zmienia rozmiar atrybutu na dysku bez blokady mapping->invalidate_lock. Wyścig z obsługą page fault może spowodować fałszywy SIGBUS lub przeplot z epilogiem zmiany rozmiaru, prowadząc do niespójności.
- CVE-2026-99087Nieznane
W jądrze Linux w dm-integrity występuje błąd, który powoduje dereferencję wskaźnika NULL, gdy urządzenie ma ustawioną flagę SB_FLAG_DIRTY_BITMAP i jest aktywowane w trybie 'R'. Funkcja dm_integrity_resume próbuje odczytać dziennik zawierający bitmapę, co prowadzi do awarii. Poprawka pomija zapisy do urządzenia w trybie 'R' podczas wznawiania.
- CVE-2026-99086Nieznane
W jądrze Linux dm-integrity nie waliduje superbloku podczas wznawiania urządzenia, co pozwala użytkownikowi zmodyfikować superblok na nośniku podczas zawieszenia urządzenia. Może to prowadzić do niezgodności rozmiarów struktur w pamięci i zapisu poza dziennik, w tym zapisu 512 bajtów przez wskaźnik NULL. Poprawka zapisuje zwalidowany superblok w konstruktorze i odmawia wznowienia, jeśli geometria na dysku uległa zmianie.
- 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-99076Nieznane
W jądrze Linux naprawiono podatność w obsłudze IPv6/UDP, która pozwalała atakującemu spoza ścieżki na atak side-channel na pamięć podręczną wyjątków (exception cache). Poprzednio wyjątek był tworzony tylko wtedy, gdy pakiet UDP dało się dopasować do istniejącego gniazda, co umożliwiało odkrycie efemerycznego portu używanego przez połączone gniazdo UDP. Poprawka polega na zawsze tworzeniu wyjątku przed próbą dopasowania gniazda.
- 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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

