CVE-2026-43315
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: KVM: nSVM: nested_svm_load_cr3() uğurlu olduqda istifadəçi tərəfindən tetiklene bilən WARN-ın silinməsi CR3 yükləndikdən sonra CPUID-ni dəyişdirərək istifadəçi sahəsindən (userspace) asanlıqla tetiklene bildiyi üçün svm_set_nested_state() funksiyasındakı nested_svm_load_cr3() xətasına dair WARN silindi. Məsələn, vəziyyətin bərpası ilə bağlı selftest-in bu şəkildə dəyişdirilməsi: --- tools/testing/selftests/kvm/x86/state_test.c +++ tools/testing/selftests/kvm/x86/state_test.c @@ -280,7 +280,16 @@ int main(int argc, char *argv[]) /* Restore state in a new VM. */ vcpu = vm_recreate_with_one_vcpu(vm); - vcpu_load_state(vcpu, state); + + if (stage == 4) { + state->sregs.cr3 = BIT(44); + vcpu_load_state(vcpu, state); + + vcpu_set_cpuid_property(vcpu, X86_PROPERTY_MAX_PHY_ADDR, 36); + __vcpu_nested_state_set(vcpu, &state->nested); + } else { + vcpu_load_state(vcpu, state); + } /* * Restore XSAVE state in a dummy vCPU, first without doing bunları yaradır: WARNING: CPU: 30 PID: 938 at arch/x86/kvm/svm/nested.c:1877 svm_set_nested_state+0x34a/0x360 [kvm_amd] Modules linked in: kvm_amd kvm irqbypass [last unloaded: kvm] CPU: 30 UID: 1000 PID: 938 Comm: state_test Tainted: G W 6.18.0-rc7-58e10b63777d-next-vm Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:svm_set_nested_state+0x34a/0x360 [kvm_amd] Call Trace: <TASK> kvm_arch_vcpu_ioctl+0xf33/0x1700 [kvm] kvm_vcpu_ioctl+0x4e6/0x8f0 [kvm] __x64_sys_ioctl+0x8f/0xd0 do_syscall_64+0x61/0xad0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 İstifadəçi sahəsinin CR3-ə "qeyri-qanuni" vəziyyət yerləşdirməsinin qarşısını almağa çalışmaq əvəzinə, sadəcə WARN silindi. Yaxşı və ya pis mənada, KVM-in ABI-si istifadəçi sahəsinə SREGS-dən sonra CPUID-ni və ya əksinə təyin etməyə icazə verir və KVM qonaq CPUID məsələsində çox tolerantdır. Yəni, CPUID təyin edərkən virtual CPU modelini məcburi tətbiq etməyə çalışmaq istifadəçi sahəsini sıradan çıxara bilər. WARN-ın KVM üçün hər hansı mənalı mühafizə təmin etmədiyi və istifadəçi sahəsi üçün fayda vermədiyi nəzərə alınsa, istifadəçi sahəsinin pozulma ehtimalı minimal olsa belə, o, sadəcə silindi. Əlavə olaraq artıq olan yeni sətir silindi.
Necə düzəltmək olar
- linux linux_kernel5.15.202, 6.1.165, 6.6.128, 6.12.75, 6.18.16, 6.19.6 və ya daha yeni versiya
- git.kernel.org/stable/c/155ec243ef726f4bc49536fa0bfb565dc011ab17
- git.kernel.org/stable/c/580ea57840864d40e019bc13fd26afdc8d510a2f
- git.kernel.org/stable/c/969e5e13ff5c18603f21d1f9f64ec9194e141ac0
- git.kernel.org/stable/c/ce904c8a5bbe697eae0f7e34b07095bd7a6dee19
- git.kernel.org/stable/c/deb8f6dfd31d94b18dbeeaa8c01fbec5fc70fd2b
- git.kernel.org/stable/c/ebb2ab4f1c87d6b52776292cf7dc16aea48e95f8
- git.kernel.org/stable/c/fc3ba56385d03501eb582e4b86691ba378e556f9
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 5.14 ≤ v < 5.15.202, 5.16 ≤ v < 6.1.165, 6.2 ≤ v < 6.6.128, 6.7 ≤ v < 6.12.75, 6.13 ≤ v < 6.18.16, 6.19 ≤ v < 6.19.6 | 5.15.202, 6.1.165, 6.6.128, 6.12.75, 6.18.16, 6.19.6 |
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.