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

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

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/06/2024
Última modificación:
03/09/2024

Descripción

En el kernel de Linux, se resolvió la siguiente vulnerabilidad: net/9p: corrige el valor uninit en p9_client_rpc() Syzbot con la ayuda de KMSAN informó el siguiente error: ERROR: KMSAN: valor uninit en trace_9p_client_res include/trace/events/ 9p.h:146 [en línea] ERROR: KMSAN: valor uninit en p9_client_rpc+0x1314/0x1340 net/9p/client.c:754 trace_9p_client_res include/trace/events/9p.h:146 [en línea] p9_client_rpc+0x1314/0x1340 net/9p/client.c:754 p9_client_create+0x1551/0x1ff0 net/9p/client.c:1031 v9fs_session_init+0x1b9/0x28e0 fs/9p/v9fs.c:410 v9fs_mount+0xe2/0x12b0 fs/9p/vfs_super.c: 122 Legacy_get_tree+0x114/0x290 fs/fs_context.c:662 vfs_get_tree+0xa7/0x570 fs/super.c:1797 do_new_mount+0x71f/0x15e0 fs/namespace.c:3352 path_mount+0x742/0x1f20 fs/namespace.c:3679 montar fs/namespace.c:3692 [en línea] __do_sys_mount fs/namespace.c:3898 [en línea] __se_sys_mount+0x725/0x810 fs/namespace.c:3875 __x64_sys_mount+0xe4/0x150 fs/namespace.c:3875 do_syscall_64+0xd5/ 0x1f0 Entry_SYSCALL_64_after_hwframe+0x6d/0x75 Uninit se creó en: __alloc_pages+0x9d6/0xe70 mm/page_alloc.c:4598 __alloc_pages_node include/linux/gfp.h:238 [en línea] alloc_pages_node include/linux/gfp.h:261 [en línea] página mm /slub.c:2175 [en línea] allocate_slab mm/slub.c:2338 [en línea] new_slab+0x2de/0x1400 mm/slub.c:2391 ___slab_alloc+0x1184/0x33d0 mm/slub.c:3525 __slab_alloc mm/slub.c :3610 [en línea] __slab_alloc_node mm/slub.c:3663 [en línea] slab_alloc_node mm/slub.c:3835 [en línea] kmem_cache_alloc+0x6d3/0xbe0 mm/slub.c:3852 p9_tag_alloc net/9p/client.c:278 [ en línea] p9_client_prepare_req+0x20a/0x1770 net/9p/client.c:641 p9_client_rpc+0x27e/0x1340 net/9p/client.c:688 p9_client_create+0x1551/0x1ff0 net/9p/client.c:1031 1b9/0x28e0fs /9p/v9fs.c:410 v9fs_mount+0xe2/0x12b0 fs/9p/vfs_super.c:122 Legacy_get_tree+0x114/0x290 fs/fs_context.c:662 vfs_get_tree+0xa7/0x570 fs/super.c:1797 do_new_mount+0x71f/ 0x15e0 fs/namespace.c:3352 path_mount+0x742/0x1f20 fs/namespace.c:3679 do_mount fs/namespace.c:3692 [en línea] __do_sys_mount fs/namespace.c:3898 [en línea] __se_sys_mount+0x725/0x810 fs/namespace .c: 3875 __x64_sys_mount+0xe4/0x150 fs/namespace.c: 3875 do_syscall_64+0xd5/0x1f0 entry_syscall_64_after_hwframe+0x6d/0x75 if p9_check_errors () fails en p9_client no se inicialice correctamente. Sin embargo, trace_9p_client_res() termina intentando imprimirlo de todos modos antes de que finalice p9_client_rpc(). Solucione este problema asignando valores predeterminados a los campos p9_fcall como 'etiqueta' y (en caso de que KMSAN descubra algo nuevo) 'id' durante la etapa de asignación de etiquetas.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.2 (incluyendo) 4.19.316 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (incluyendo) 5.4.278 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (incluyendo) 5.10.219 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.161 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.94 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.34 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.9.5 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*