CVE-2024-46738
Təsvir
Linux kernelində aşağıdakı zəiflik aradan qaldırılıb: VMCI: vmci_resource_remove() funksiyasında resurs silinərkən istifadədən sonra azad etmə (use-after-free) problemi düzəldilib vmci_resource_remove() funksiyasında vmci_resource_table-dan resurs silinərkən axtarış resurs dəstəyi (handle) vasitəsilə context və resource sahələrinin müqayisəsi ilə aparılır. Lakin fərqli tiplərə malik, amma eyni dəstəyə (eyni context və resource sahələrinə) sahib iki resurs yaratmaq mümkündür. Resurslardan birini silməyə cəhd edildikdə, vmci_resource_remove() nəzərdə tutulan resursu silməyə bilər, lakin obyekt vmci_datagram_destroy_handle() funksiyasında datagram tipi halında olduğu kimi yenə də azad ediləcək. vmci_resource_table bu azad edilmiş resursa göstəricini saxlamağa davam edəcək və bu, istifadədən sonra azad etmə zəifliyinə səbəb olacaq. 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 dəyişiklik vmci_resource_remove() funksiyasında resurs vmci_resource_table-dan silinərkən tipin də yoxlanılmasını təmin edir.
Necə düzəltmək olar
- linux linux_kernel4.19.322, 5.4.284, 5.10.226, 5.15.167, 6.1.110, 6.6.51, 6.10.10 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
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.