CVE-2024-50114
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: KVM: arm64: Başarısız vCPU oluşturma durumunda redistributor kaydını kaldırın Alex, bir VM kapatılırken syzkaller'ın bir serbest bırakıldıktan sonra kullanım (use-after-free) durumu tetiklemeyi başardığını bildirmiştir: BUG: KASAN: slab-use-after-free in kvm_put_kvm+0x300/0xe68 virt/kvm/kvm_main.c:5769 Read of size 8 at addr ffffff801c6890d0 by task syz.3.2219/10758 CPU: 3 UID: 0 PID: 10758 Comm: syz.3.2219 Not tainted 6.11.0-rc6-dirty #64 Hardware name: linux,dummy-virt (DT) Call trace: dump_backtrace+0x17c/0x1a8 arch/arm64/kernel/stacktrace.c:317 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:324 __dump_stack lib/dump_stack.c:93 [inline] dump_stack_lvl+0x94/0xc0 lib/dump_stack.c:119 print_report+0x144/0x7a4 mm/kasan/report.c:377 kasan_report+0xcc/0x128 mm/kasan/report.c:601 __asan_report_load8_noabort+0x20/0x2c mm/kasan/report_generic.c:381 kvm_put_kvm+0x300/0xe68 virt/kvm/kvm_main.c:5769 kvm_vm_release+0x4c/0x60 virt/kvm/kvm_main.c:1409 __fput+0x198/0x71c fs/file_table.c:422 ____fput+0x20/0x30 fs/file_table.c:450 task_work_run+0x1cc/0x23c kernel/task_work.c:228 do_notify_resume+0x144/0x1a0 include/linux/resume_user_mode.h:50 el0_svc+0x64/0x68 arch/arm64/kernel/entry-common.c:169 el0t_64_sync_handler+0x90/0xfc arch/arm64/kernel/entry-common.c:730 el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598 Daha yakından incelendiğinde, örneğin VM içinde aynı kimliğe sahip bir vCPU zaten mevcut olduğunda ve vCPU oluşturma işlemi sürecin sonunda başarısız olduğunda, ilgili vCPU için MMIO kaydının düzgün şekilde kaldırılmadığı görülmektedir. Kaydı kaldırma işlemini __kvm_vgic_vcpu_destroy() dışına taşıyarak bu hataya neden olan commit bağlamını dikkate almak önemlidir. Söz konusu değişiklik, vCPU kapatma işlemini biri config_lock tarafından korunan iki parçaya bölerek, srcu ile config_lock arasındaki kilit terslemesini (lock inversion) önlemeyi amaçlamıştır. __kvm_vgic_vcpu_destroy() fonksiyonuna özel durumlu bir kayıt silme işlemi ekleyerek, kilit terslemesinden kaçınırken serbest bırakıldıktan sonra kullanım (use-after-free) sorunu giderilmiştir. Başarısız vCPU'lar config_lock dışında kapatıldığı için bu işlem güvenlidir.
Nasıl düzeltilir
- linux linux_kernel6.11.6 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 | 6.11 ≤ v < 6.11.6, 6.12 | 6.11.6 |
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.