CVE-2024-46738
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: VMCI: vmci_resource_remove() fonksiyonunda kaynak kaldırılırken oluşan serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi. vmci_resource_remove() fonksiyonunda vmci_resource_table üzerinden bir kaynak kaldırılırken, arama işlemi context ve resource alanları karşılaştırılarak kaynak tutamacı (handle) kullanılarak gerçekleştirilir. Ancak farklı türlerde fakat aynı tutamaca (aynı context ve resource alanlarına) sahip iki kaynak oluşturmak mümkündür. Kaynaklardan biri kaldırılmaya çalışıldığında, vmci_resource_remove() hedeflenen kaynağı kaldırmayabilir; ancak nesne, vmci_datagram_destroy_handle() içindeki datagram türünde olduğu gibi yine de serbest bırakılacaktır. vmci_resource_table hala bu serbest bırakılmış kaynağa bir işaretçi tutmaya devam edecek ve bu durum bir serbest bırakıldıktan sonra kullanım (use-after-free) zafiyetine yol açacaktır. BUG: KASAN: use-after-free in vmci_handle_is_equal include/linux/vmw_vmci_defs.h:142 [inline] BUG: KASAN: use-after-free in vmci_resource_remove+0x3a1/0x410 drivers/misc/vmw_vmci/vmci_resource.c:147 Read of size 4 at addr ffff88801c16d800 by task syz-executor197/1592 Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x82/0xa9 lib/dump_stack.c:106 print_address_description.constprop.0+0x21/0x366 mm/kasan/report.c:239 __kasan_report.cold+0x7f/0x132 mm/kasan/report.c:425 kasan_report+0x38/0x51 mm/kasan/report.c:442 vmci_handle_is_equal include/linux/vmw_vmci_defs.h:142 [inline] vmci_resource_remove+0x3a1/0x410 drivers/misc/vmw_vmci/vmci_resource.c:147 vmci_qp_broker_detach+0x89a/0x11b9 drivers/misc/vmw_vmci/vmci_queue_pair.c:2182 ctx_free_ctx+0x473/0xbe1 drivers/misc/vmw_vmci/vmci_context.c:444 kref_put include/linux/kref.h:65 [inline] vmci_ctx_put drivers/misc/vmw_vmci/vmci_context.c:497 [inline] vmci_ctx_destroy+0x170/0x1d6 drivers/misc/vmw_vmci/vmci_context.c:195 vmci_host_close+0x125/0x1ac drivers/misc/vmw_vmci/vmci_host.c:143 __fput+0x261/0xa34 fs/file_table.c:282 task_work_run+0xf0/0x194 kernel/task_work.c:164 tracehook_notify_resume include/linux/tracehook.h:189 [inline] exit_to_user_mode_loop+0x184/0x189 kernel/entry/common.c:187 exit_to_user_mode_prepare+0x11b/0x123 kernel/entry/common.c:220 __syscall_exit_to_user_mode_work kernel/entry/common.c:302 [inline] syscall_exit_to_user_mode+0x18/0x42 kernel/entry/common.c:313 do_syscall_64+0x41/0x85 arch/x86/entry/common.c:86 entry_SYSCALL_64_after_hwframe+0x6e/0x0 Bu değişiklik, vmci_resource_remove() fonksiyonunda kaynağın vmci_resource_table listesinden kaldırılması sırasında türün (type) de kontrol edilmesini sağlar.
Nasıl düzeltilir
- linux linux_kernel4.19.322, 5.4.284, 5.10.226, 5.15.167, 6.1.110, 6.6.51, 6.10.10 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 | 3.9 ≤ v < 4.19.322, 4.20 ≤ v < 5.4.284, 5.5 ≤ v < 5.10.226, 5.11 ≤ v < 5.15.167, 5.16 ≤ v < 6.1.110, 6.2 ≤ v < 6.6.51, 6.7 ≤ v < 6.10.10, 6.11 | 4.19.322, 5.4.284, 5.10.226, 5.15.167, 6.1.110, 6.6.51, 6.10.10 |
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.