CVE-2025-37957
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: KVM: SVM: SHUTDOWN yakalamasında SMM modundan zorla çıkış Önceden, ed129ec9057f numaralı commit ("KVM: x86: forcibly leave nested mode on vCPU reset"), iç içe geçmiş modda meydana gelen bir üçlü hatanın (triple fault) serbest bırakıldıktan sonra kullanım (use-after-free) senaryolarına yol açabildiği bir sorunu gidermişti. Ancak söz konusu commit, Sistem Yönetim Modu (SMM) için benzer durumu ele almamıştı. Bu eksiklik, vCPU SMM modundayken KVM'nin SHUTDOWN yakalamasından sonra bir vCPU INIT işlemini zorlaması durumunda bir WARN tetiklenmesine neden olur. Bu durum Syzkaller kullanılarak şu şekilde yeniden üretilmiştir: 1) Bir KVM VM ve vCPU oluşturulması 2) Açıkça SMM moduna girmek için bir KVM_SMI ioctl gönderilmesi 3) Ardışık istisnalara ve nihayetinde bir üçlü hataya neden olan geçersiz talimatların yürütülmesi Sorun şu şekilde ortaya çıkmaktadır: WARNING: CPU: 0 PID: 25506 at arch/x86/kvm/x86.c:12112 kvm_vcpu_reset+0x1d2/0x1530 arch/x86/kvm/x86.c:12112 Modules linked in: CPU: 0 PID: 25506 Comm: syz-executor.0 Not tainted 6.1.130-syzkaller-00157-g164fe5dde9b6 #0 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:kvm_vcpu_reset+0x1d2/0x1530 arch/x86/kvm/x86.c:12112 Call Trace: <TASK> shutdown_interception+0x66/0xb0 arch/x86/kvm/svm/svm.c:2136 svm_invoke_exit_handler+0x110/0x530 arch/x86/kvm/svm/svm.c:3395 svm_handle_exit+0x424/0x920 arch/x86/kvm/svm/svm.c:3457 vcpu_enter_guest arch/x86/kvm/x86.c:10959 [inline] vcpu_run+0x2c43/0x5a90 arch/x86/kvm/x86.c:11062 kvm_arch_vcpu_ioctl_run+0x50f/0x1cf0 arch/x86/kvm/x86.c:11283 kvm_vcpu_ioctl+0x570/0xf00 arch/x86/kvm/../../../virt/kvm/kvm_main.c:4122 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:870 [inline] __se_sys_ioctl fs/ioctl.c:856 [inline] __x64_sys_ioctl+0x19a/0x210 fs/ioctl.c:856 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 Mimari olarak, CPU SMM modundayken INIT engellenir; bu nedenle kvm_vcpu_reset() içerisindeki KVM'nin WARN() fonksiyonu, örneğin INIT'in hatalı emülasyonunu tespit etmek gibi KVM hatalarına karşı koruma sağlar. SVM üzerindeki SHUTDOWN, teknik olarak tanımlanmamış olduğu için KVM'nin VMCB ile mantıklı bir şeyler yapması gereken tuhaf bir uç durumdur ve KVM'nin ABI'si göz önüne alındığında INIT en az kötü seçenektir. Bu nedenle, SHUTDOWN sırasında INIT kullanımı pekiştirilmiş ve herhangi bir tuhaflığı (ve WARN uyarısını) önlemek için vCPU'nun SMM modundan zorla çıkarılması sağlanmıştır. Syzkaller ile Linux Verification Center (linuxtesting.org) tarafından bulunmuştur.
Nasıl düzeltilir
- linux linux_kernel5.16, 6.1, 6.6.92, 6.12.29, 6.14.7 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.15.81 ≤ v < 5.16, 6.0.11 ≤ v < 6.1, 6.1.1 ≤ v < 6.6.92, 6.7 ≤ v < 6.12.29, 6.13 ≤ v < 6.14.7, 6.1, 6.15 | 5.16, 6.1, 6.6.92, 6.12.29, 6.14.7 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.