CVE-2026-98464
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: RISC-V: KVM: Ləğv etmə zamanı hrtimer geri çağırışının sinxronizasiyası Non-Sstc hrtimer geri çağırışı, əhatə edici vCPU-dan son istifadələrdən əvvəl next_set dəyişənini təmizləyir. Əgər ləğv etmə prosesi geri çağırış hələ işləyərkən next_set-in false olduğunu müşahidə edərsə, kvm_riscv_vcpu_timer_cancel() funksiyası hrtimer_cancel()-i ötürür və kvm_destroy_vcpus() geri çağırış kvm_riscv_vcpu_set_interrupt() funksiyasına daxil olmazdan əvvəl vCPU-nu azad edə bilər. Qonaq sistem SBI TIME ilə taymeri aktivləşdirə və SBI legacy shutdown və ya SRST ilə söndürmə tələbi göndərə bilər. KVM_EXIT_SYSTEM_EVENT hadisəsini nəzərə alan və VM-i məhv edən bir VMM yarış şəraitinin (race condition) ləğv etmə tərəfini təmin edir; taymerin aktivləşdirilməsi və ya ləğv edilməsi üçün başlatmadan sonra heç bir host ioctl tələb olunmur. Upstream master 62cc90241548 versiyasında ümumi KASAN aşağıdakıları bildirdi: BUG: KASAN: slab-use-after-free in do_raw_spin_lock Write of size 4 at addr ff60000005e58898 kvm_riscv_vcpu_set_interrupt kvm_riscv_vcpu_hrtimer_expired __hrtimer_run_queues hrtimer_interrupt Obyekt KVM_CREATE_VCPU tərəfindən ayrılmış və eyni zamanda aşağıdakılar tərəfindən azad edilmişdir: kvm_destroy_vcpus kvm_arch_destroy_vm kvm_destroy_vm __fput Deterministik təsdiqləmə üçün mövcud next_set = false təyinatından dərhal sonra mdelay(1000) əlavə etdim. Bu, yalnız təmizləmədən sonrakı mövcud geri çağırış pəncərəsini genişləndirir. Gecikməsiz izləmə quruluşu (trace build) 200 yürüşün 12-də təbii olaraq ləğv etmənin başlanğıcından sonra/deinit-dən əvvəlki geri çağırış ardıcıllığına çatdı, lakin 1,500 standart kernel stres iterasiyası KASAN hesabatı yaratmadı, buna görə də təbii reproduksiya vaxta həssasdır. İnitsializasiya edilmiş taymer üçün həmişə hrtimer_cancel() çağırın. Taymer artıq təyin edilmədikdə mövcud -EINVAL nəticəsini saxlayın, lakin bunu yalnız işləyən geri çağırışla sinxronlaşdıqdan sonra edin. Bu yamaqla, vCPU məhv edilməzdən əvvəl hrtimer_cancel() tam genişləndirilmiş geri çağırış pəncərəsi boyunca bloklandı. 100 düzəldilmiş və genişləndirilmiş yürüşdə və ya 200 yalnız düzəliş edilmiş vaxt sınağı yürüşündə KASAN heç bir xəta bildirmədi.
Necə düzəltmək olar
- Linux Linux9bdbae64ae0dab93041ebc57ec4e93def793fc2d, 2af03b606aadaaeb386658ef798c79bdcdef87c1, e66aced74f0122380603c9910a71d77618b28f0e, ea91f05a55b807ead3166546a2c75f4185ca645f, 3cc6184bd5920c9685d87f4e260568feba08650d, aaad136d56d91252517272b68cd533e5714698d5 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 3a9f66cb25e18a3eeca36c08d9f823a35b3ddc22 ≤ v < 9bdbae64ae0dab93041ebc57ec4e93def793fc2d, 3a9f66cb25e18a3eeca36c08d9f823a35b3ddc22 ≤ v < 2af03b606aadaaeb386658ef798c79bdcdef87c1, 3a9f66cb25e18a3eeca36c08d9f823a35b3ddc22 ≤ v < e66aced74f0122380603c9910a71d77618b28f0e, 3a9f66cb25e18a3eeca36c08d9f823a35b3ddc22 ≤ v < ea91f05a55b807ead3166546a2c75f4185ca645f, 3a9f66cb25e18a3eeca36c08d9f823a35b3ddc22 ≤ v < 3cc6184bd5920c9685d87f4e260568feba08650d, 3a9f66cb25e18a3eeca36c08d9f823a35b3ddc22 ≤ v < aaad136d56d91252517272b68cd533e5714698d5, 5.16 | 9bdbae64ae0dab93041ebc57ec4e93def793fc2d, 2af03b606aadaaeb386658ef798c79bdcdef87c1, e66aced74f0122380603c9910a71d77618b28f0e, ea91f05a55b807ead3166546a2c75f4185ca645f, 3cc6184bd5920c9685d87f4e260568feba08650d, aaad136d56d91252517272b68cd533e5714698d5 |
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.