CVE-2026-98863
NieznaneStreszczenie
W KVM na architekturze x86 żądanie GET_NESTED_STATE_PAGES nie było ponownie ustawiane, gdy pobranie stron zagnieżdżonych kończyło się niepowodzeniem w ścieżce KVM_RUN. Jeśli użytkownik ponownie uruchomił vCPU, a vmcs02 zawierał ważne PFN z poprzedniego uruchomienia L2, KVM mógł wejść do L2 ze starymi, nieprzypiętymi PFN zmapowanymi np. na stronę vAPIC.
Ocena ryzyka
Może prowadzić do użycia nieaktualnych lub nieprzypiętych stron pamięci w maszynie wirtualnej, co potencjalnie umożliwia ujawnienie danych lub uszkodzenie pamięci gościa. Dotyczy środowisk wirtualizacyjnych z zagnieżdżoną wirtualizacją.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę. Ogranicz korzystanie z zagnieżdżonej wirtualizacji na niezałatanych hostach.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-98868Nieznane
W jądrze Linux rozwiązano podatność w module dm-pcache: odrzucanie ksetu przekraczającego swój segment. Funkcje cache_replay(), worker zapisu zwrotnego i worker GC odczytują kset o rozmiarze get_kset_onmedia_size() bajtów i przesuwają pozycję o tę wartość. Sfałszowany key_num powoduje, że rozmiar przekracza pozostałe miejsce w segmencie, przez co przesunięcie wychodzi poza segment i wyzwala BUG_ON w cache_pos_advance().
- CVE-2026-98867Nieznane
W jądrze Linux rozwiązano podatność w module dm-pcache: ograniczenie logicznego przesunięcia klucza z pamięci trwałej. Funkcja cache_key_decode() pobiera logiczne przesunięcie klucza z urządzenia pamięci podręcznej i później indeksuje req_key_tree->subtrees[] za jego pomocą w get_subtree(). Przesunięcie poza urządzenie tworzy wskaźnik poddrzewa poza tablicą, do którego rb_insert() zapisuje podczas odtwarzania.
- CVE-2026-98866Nieznane
W jądrze Linux rozwiązano podatność w module sched/cache: wprowadzono task_struct->sched_cache_grp w celu naprawy use-after-free. Dodano wskaźnik sched_cache_grp do task_struct, aby kod schedulera mógł uzyskać dostęp do grupy cache bezpośrednio przez zadanie, bez pośrednictwa mm->sched_cache_grp. Każde zadanie utrzymuje własny licznik referencji na sched_cache_group, niezależny od referencji w mm_struct. Referencja jest pozyskiwana w copy_mm() (fork) i exec_mmap() (exec), a zwalniana w exit_mm(). Naprawia to use-after-free, gdy account_mm_sched() dociera do grupy przez zadanie, którego mm jest przełączane.
- CVE-2026-98865Nieznane
W jądrze Linux w schedulerze sched_ext funkcja ops.dequeue() była wywoływana z wciąż trzymaną blokadą DSQ na ścieżkach consume i move. Jeśli scheduler BPF próbował zablokować źródłowy DSQ wewnątrz ops.dequeue(), dochodziło do samozakleszczenia. Poprawka przenosi wywołanie po zwolnieniu blokady DSQ na wszystkich trzech ścieżkach.
- CVE-2026-98864Nieznane
W jądrze Linux w sched_ext zadanie mogło znajdować się na DSQ, gdy jego stan wciąż był SCX_OPSS_DISPATCHING. Ścieżki reenqueue nie czekały na wyczyszczenie tego stanu, więc ops.enqueue() ustawiał SCX_OPSS_QUEUED, a następnie końcowy zapis dyspozytora nadpisywał go wartością SCX_OPSS_NONE, powodując porzucenie kolejnych dispatchy zadania. Poprawka czeka na wyczyszczenie SCX_OPSS_DISPATCHING przed dequeue do reenqueue.
- CVE-2026-98862Nieznane
W podsystemie audit jądra Linux funkcja kill_rules() usuwała reguły AUDIT_DIR i AUDIT_EXE podczas przycinania drzewa audytu, zwalniając entry->rule.exe przed usunięciem reguły z list widocznych przez RCU. Usunięcie obserwowanego katalogu mogło wyścignąć się z innym zadaniem oceniającym regułę, powodując use-after-free w audit_mark_compare().
- CVE-2026-98861Nieznane
W jądrze Linux naprawiono podatność w mechanizmie fprobe, polegającą na tym, że funkcje wyrejestrowujące fprobe (unregister_fprobe, unregister_fprobe_async) opierały się na standardowych okresach łaski RCU, które nie śledzą sekcji z wyłączonym wywłaszczaniem, gdy RCU nie obserwuje (np. w pętli bezczynności lub w stanach nohz_full). Mogło to prowadzić do użycia zwolnionej pamięci (use-after-free), jeśli fprobe został zwolniony zaraz po wyrejestrowaniu. Poprawka zapewnia wczesne wyjście z procedur obsługi, gdy !rcu_is_watching(), oraz zastępuje guard(rcu)() i rcu_read_lock() przez guard(rcu_sched_notrace)(), co eliminuje narzut lockdep na szybkiej ścieżce.
- CVE-2026-98860Nieznane
W podsystemie HID BPF jądra Linux porównanie zwracanej wartości z hid_bpf_hw_request z rozmiarem nie rzutowało rozmiaru na ssize_t. Gdy sterownik transportu zwracał ujemny kod błędu (np. -EPIPE), był on promowany do size_t i oceniany jako duża liczba dodatnia, przez co warunek (ret > size) stawał się prawdziwy. Powodowało to ciche potraktowanie błędu sprzętowego jako sukcesu i skopiowanie niezmodyfikowanego bufora.
- CVE-2026-98859Nieznane
W jądrze Linux w sterowniku HID multitouch funkcja mt_remove() używała timer_delete_sync() do zatrzymania timera odpowiedzialnego za tzw. sticky fingers. Timer mógł jednak zostać ponownie uzbrojony przez raport przychodzący po jego usunięciu, co prowadziło do użycia zwolnionej pamięci (use-after-free) po odłączeniu sterownika. Problem rozwiązano, zastępując timer_delete_sync() funkcją timer_shutdown_sync(), która dodatkowo blokuje późniejsze mod_timer().
- CVE-2026-98858Nieznane
W io_uring jądra Linux w trybie SQPOLL wątek sqpoll mógł pobrać i ukończyć żądanie zaraz po opublikowaniu go przez mpscq_push(). Jeśli było to ostatnie żądanie utrzymujące pierścień przy życiu, io_ring_exit_work() zwalniało ctx, zatrzymywało wątek i tctx, podczas gdy io_req_normal_work_add() wciąż odwoływało się do nich, powodując use-after-free. Poprawka utrzymuje blokadę RCU wokół dodawania i czeka na okres karencji przed zwolnieniem ctx.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Re-pend GET_NESTED_STATE_PAGES if getting said pages fails Re-pend GET_NESTED_STATE_PAGES before exiting to userspace if getting the nested pages fails in the KVM_RUN path. If userspace re-runs the vCPU, and vmcs02 holds valid PFNs from the *previous* run of L2, then KVM could re-enter L2 with stale, unpinned PFNs mapped into e.g. the vAPIC page. Note, both SVM and VMX (as of commit 11722439fb20 ("KVM: nVMX: Ensure KVM_REQ_GET_NESTED_STATE_PAGES is cleared on VM-Exit") ensure the request is cleared on VM-Exit (including the "forced" case), i.e. there is no risk of double-mapping due to emulated VMLAUNCH/VMRESUME/VMRUN *and* the request trying to map the nested pages.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

