CVE-2026-89513
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
W jądrze Linux w komponencie KVM dla architektury RISC-V występuje przepełnienie rozmiaru tablicy informacji o zdarzeniach PMU. Wartość num_events kontrolowana przez gościa jest mnożona przez sizeof(*einfo) i zapisywana w 32-bitowej zmiennej, co przy dużych wartościach powoduje obcięcie rozmiaru i alokację zbyt małego bufora. Następnie pętla iteruje po oryginalnej liczbie zdarzeń, co prowadzi do odczytów i zapisów poza granicami zaalokowanej pamięci.
Ocena ryzyka
Podatność może zostać wykorzystana przez zagnieżdżonego gościa KVM do wywołania błędu typu out-of-bounds w pamięci jądra, co potencjalnie prowadzi do uszkodzenia pamięci, awarii systemu lub eskalacji uprawnień w środowisku wirtualizacji.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która przechowuje rozmiar pamięci współdzielonej w size_t, odrzuca przepełnienie mnożenia oraz używa kvcalloc() i indeksu typu unsigned long. Jeśli aktualizacja nie jest możliwa, ogranicz możliwość uruchamiania zagnieżdżonych maszyn wirtualnych na hostach z KVM RISC-V.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-98162Nieznane
W jądrze Linux w funkcji smb2_tree_connect() serwera SMB (ksmbd) występuje wyciek połączenia drzewa (tree connection). Gdy funkcja ksmbd_iov_pin_rsp() zakończy się niepowodzeniem, nowo utworzone połączenie drzewa nie jest rozłączane, co prowadzi do wycieku zasobów.
- CVE-2026-98160Nieznane
W jądrze Linux w sterowniku staging rtl8723bs funkcja rtw_sdio_if1_init() zwalnia bufor padapter->HalData za pomocą kfree(), mimo że został on przydzielony przez vzalloc(). Użycie kfree() do zwolnienia bufora opartego na vmalloc może prowadzić do uszkodzenia pamięci.
- CVE-2026-100079Nieznane
W jądrze Linux w podsystemie USB Type-C (ucsi) funkcja ucsi_register() tworzy wpisy debugfs dla instancji, ale ucsi_unregister() nie usuwa ich aż do wywołania ucsi_destroy(). Sterowniki takie jak ucsi_glink, które wyrejestrowują i rejestrują tę samą instancję UCSI przy restarcie remoteproc, próbują utworzyć już istniejący katalog debugfs.
- CVE-2026-100078Nieznane
W jądrze Linux w sterowniku wifi iwlwifi (mei) funkcja iwl_mei_write_cyclic_buf() otrzymuje nieprawidłowy pierwszy argument — zamiast cldev przekazywany jest wskaźnik q_head. Błąd został naprawiony.
- CVE-2026-100077Nieznane
W jądrze Linux w sterowniku drm/msm podczas odzyskiwania GPU nie jest bezpieczne wycofywanie zawieszonego zgłoszenia (submit) przed zakończeniem odzyskiwania GPU. Wycofanie zgłoszenia powoduje zwolnienie buforów BO, do których GPU może wciąż aktywnie uzyskiwać dostęp, co prowadzi do błędów strony (pagefaults).
- CVE-2026-100074Nieznane
W jądrze Linux naprawiono błąd w podsystemie BPF, w którym pole BPF_REFCOUNT nie było oznaczane jako unikalne, mimo że powinno być. Poprawka usuwa to przeoczenie.
- CVE-2026-100073Nieznane
W jądrze Linux naprawiono błąd w systemie plików ext4 dotyczący przepełnienia transakcji podczas zapisu zwrotnego. Poprzednia poprawka zbyt agresywnie zmniejszała liczbę rezerwowanych kredytów transakcyjnych, co w niektórych przypadkach prowadziło do niewystarczającej rezerwy. Poprawka używa funkcji ext4_meta_trans_blocks() do prawidłowego oszacowania górnej granicy.
- CVE-2026-100072Nieznane
W jądrze Linux naprawiono problem w podsystemie ACPI, gdzie użycie acpi_get_first_physical_node() w acpi_platform_fill_resource() i acpi_create_platform_device() było niebezpieczne, ponieważ zwrócone urządzenie mogło zostać zwolnione w dowolnym momencie. Poprawka zastępuje tę funkcję funkcją acpi_bus_get_primary_device() i dostosowuje kod, aby wywoływać ją tylko raz.
- CVE-2026-100071Nieznane
W jądrze Linux naprawiono wyciek pamięci w module HSR (High-availability Seamless Redundancy). Gdy funkcja hsr_dev_finalize() zawiedzie po zarejestrowaniu procedury obsługi RX, dynamiczne węzły nauczone w tym oknie nie są zwalniane. Poprawka zwalnia obie bazy danych dynamicznych w ścieżce obsługi błędów.
- CVE-2026-100070Nieznane
W jądrze Linux naprawiono błąd w module netfilter nf_nat_sip, gdzie przesunięcie (offset) nie było korygowane, gdy NAT zmniejszał pakiet. Jeśli map_addr() zmienia długość pakietu, coff może wskazywać nieprawidłową pozycję, co może prowadzić do pominięcia kolejnych nagłówków Contact i wycieku wewnętrznych adresów sieciowych.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: RISC-V: KVM: Fix PMU event info array size overflow SBI PMU EVENT_GET_INFO stores guest-controlled num_events * sizeof(*einfo) in a 32-bit integer. On RV64, num_events = 0x10000001 makes 0x100000010 truncate to 16. KVM then allocates one entry but loops over the original num_events, causing out-of-bounds reads and writes. A nested guest triggered: BUG: KASAN: slab-out-of-bounds in kvm_riscv_vcpu_pmu_event_info+0xa4/0x142 Read of size 4 at addr ff600000074d46b0 by task init/1 Call Trace: [<ffffffff8006471c>] kvm_riscv_vcpu_pmu_event_info+0xa4/0x142 [<ffffffff800690c0>] kvm_sbi_ext_pmu_handler+0xca/0x268 [<ffffffff8006779e>] kvm_riscv_vcpu_sbi_ecall+0xec/0x1e6 [<ffffffff8006008c>] kvm_riscv_vcpu_exit+0x48c/0x540 [<ffffffff8005ea0a>] kvm_arch_vcpu_ioctl_run+0x37e/0xc80 Allocated by task 1: __kmalloc_noprof+0x19e/0x4b0 kvm_riscv_vcpu_pmu_event_info+0x72/0x142 kvm_sbi_ext_pmu_handler+0xca/0x268 kvm_riscv_vcpu_sbi_ecall+0xec/0x1e6 kvm_riscv_vcpu_exit+0x48c/0x540 kvm_arch_vcpu_ioctl_run+0x37e/0xc80 The buggy address is located 0 bytes to the right of allocated 16-byte region [ff600000074d46a0, ff600000074d46b0) Store the shared-memory size in size_t and reject multiplication overflow. Allocate the guest-driven array with GFP_KERNEL_ACCOUNT so it is charged to kmemcg, and use __GFP_NOWARN to suppress allocation failure warnings. Use kvcalloc() to allow vmalloc fallback and an unsigned long loop index to match num_events.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

