CVE-2026-64247
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: KVM: x86: hyper-v: Seyrək bankların sorğusu zamanı bank indeksini məhdudlaşdır VP ID-nin seyrək bank dəstinə daxil olub-olmadığını yoxlayarkən, ID-nin həqiqətən seyrək bankda yerləşə biləcəyini açıq şəkildə yoxlayın (TLFS hər biri 64 vCPU-dan ibarət maksimum 64 banka icazə verir). L2 üçün paravirtual TLB flush emal edilərkən VP ID enlightened VMCS-dən heç bir sərhəd yoxlaması olmadan olduğu kimi köçürülür, yəni 4096 həddindən aşağı olmasına zəmanət verilmir. VP ID-nin sərhədlərinin yoxlanılmaması seyrək bankı test edərkən buferdən kənar oxumaya gətirib çıxarır və ciddi desək, KVM-in L2 vCPU üçün lazımsız TLB flush etməsinə səbəb ola bilər. ================================================================== BUG: KASAN: use-after-free in hv_is_vp_in_sparse_set+0x85/0x100 [kvm] Read of size 8 at addr ffff88811ba5f598 by task hyperv_evmcs/2802 CPU: 12 UID: 1000 PID: 2802 Comm: hyperv_evmcs Not tainted 7.1.0-rc2 #7 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 Call Trace: <TASK> dump_stack_lvl+0x51/0x60 print_report+0xcb/0x5d0 kasan_report+0xb4/0xe0 kasan_check_range+0x35/0x1b0 hv_is_vp_in_sparse_set+0x85/0x100 [kvm] kvm_hv_flush_tlb+0xe9e/0x16c0 [kvm] kvm_hv_hypercall+0xe6b/0x1e60 [kvm] vmx_handle_exit+0x485/0x1b60 [kvm_intel] kvm_arch_vcpu_ioctl_run+0x22e3/0x5070 [kvm] kvm_vcpu_ioctl+0x5d0/0x10c0 [kvm] __x64_sys_ioctl+0x129/0x1a0 do_syscall_64+0xb9/0xcf0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x7f0e62d1a9bf </TASK> The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0xffffffffffffffff pfn:0x11ba5f flags: 0x4000000000000000(zone=1) raw: 4000000000000000 0000000000000000 00000000ffffffff 0000000000000000 raw: ffffffffffffffff 0000000000000000 00000000ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff88811ba5f480: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff88811ba5f500: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff >ffff88811ba5f580: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ^ ffff88811ba5f600: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff88811ba5f680: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ================================================================== Disabling lock debugging due to kernel taint Fürsətdən istifadə edərək, seyrək bankların maksimum sayının ötürülən maskadakı mümkün bitlərin sayına tam uyğun olduğunu təmin etmək üçün kompilyasiya vaxtı təsdiqi əlavə edin. [sean: KASAN splat əlavə et, şərhi çıxar, assert əlavə et, changelog-u işlə]
Necə düzəltmək olar
- linux linux_kernel6.6.144, 6.12.95, 6.18.38, 7.1.3 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.2 ≤ v < 6.6.144, 6.7 ≤ v < 6.12.95, 6.13 ≤ v < 6.18.38, 6.19 ≤ v < 7.1.3 | 6.6.144, 6.12.95, 6.18.38, 7.1.3 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.