Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2024-46738)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416 Utilización después de liberación
Fecha de publicación:
18/09/2024
Última modificación:
20/09/2024

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: VMCI: Arreglar el use after free al eliminar un recurso en vmci_resource_remove() Al eliminar un recurso de vmci_resource_table en vmci_resource_remove(), la búsqueda se realiza utilizando el identificador del recurso comparando los campos de contexto y recurso. Sin embargo, es posible crear dos recursos con diferentes tipos pero el mismo identificador (mismo contexto y campos de recurso). Al intentar eliminar uno de los recursos, es posible que vmci_resource_remove() no elimine el deseado, pero el objeto aún se liberará como en el caso del tipo de datagrama en vmci_datagram_destroy_handle(). vmci_resource_table aún mantendrá un puntero a este recurso liberado, lo que conduce a una vulnerabilidad de use after free. ERROR: KASAN: use after free en vmci_handle_is_equal include/linux/vmw_vmci_defs.h:142 [en línea] ERROR: KASAN: use after free en vmci_resource_remove+0x3a1/0x410 drivers/misc/vmw_vmci/vmci_resource.c:147 Lectura de tamaño 4 en la dirección ffff88801c16d800 por la tarea syz-executor197/1592 Seguimiento de llamadas: __dump_stack lib/dump_stack.c:88 [en línea] 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 [en línea] 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 controladores/misc/vmw_vmci/vmci_context.c:444 kref_put include/linux/kref.h:65 [en línea] vmci_ctx_put controladores/misc/vmw_vmci/vmci_context.c:497 [en línea] vmci_ctx_destroy+0x170/0x1d6 controladores/misc/vmw_vmci/vmci_context.c:195 vmci_host_close+0x125/0x1ac controladores/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 [en línea] 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 [en línea] 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 Este cambio garantiza que el tipo también se verifique al eliminar el recurso de vmci_resource_table en Eliminación de recursos vmci().

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.9 (incluyendo) 4.19.322 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (incluyendo) 5.4.284 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (incluyendo) 5.10.226 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.167 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.110 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.51 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.10.10 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:*