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

Vulnerabilidad en kernel de Linux (CVE-2022-49546)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
26/02/2025
Última modificación:
10/04/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: x86/kexec: se corrige la pérdida de memoria del búfer de encabezado elf Esto lo informa el detector kmemleak: objeto sin referencia 0xffffc900002a9000 (size 4096): comm "kexec", pid 14950, jiffies 4295110793 (age 373.951s) hex dump (first 32 bytes): 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............ 04 00 3e 00 01 00 00 00 00 00 00 00 00 00 00 00 ..>............. backtrace: [<0000000016a8ef9f>] __vmalloc_node_range+0x101/0x170 [<000000002b66b6c0>] __vmalloc_node+0xb4/0x160 [<00000000ad40107d>] crash_prepare_elf64_headers+0x8e/0xcd0 [<0000000019afff23>] crash_load_segments+0x260/0x470 [<0000000019ebe95c>] bzImage64_load+0x814/0xad0 [<0000000093e16b05>] arch_kexec_kernel_image_load+0x1be/0x2a0 [<000000009ef2fc88>] kimage_file_alloc_init+0x2ec/0x5a0 [<0000000038f5a97a>] __do_sys_kexec_file_load+0x28d/0x530 [<0000000087c19992>] do_syscall_64+0x3b/0x90 [<0000000066e063a4>] entry_SYSCALL_64_after_hwframe+0x44/0xae In crash_prepare_elf64_headers(), se asigna un búfer a través de vmalloc() para almacenar encabezados elf. Sin embargo, no se libera correctamente al sistema cuando se vuelve a cargar o descargar el kernel kdump. Entonces se produce una pérdida de memoria. Arréglelo introduciendo la función específica x86 arch_kimage_file_post_load_cleanup() y liberando el búfer allí. Y también elimine el código incorrecto de liberación del búfer del encabezado elf. Antes de llamar a la función de carga kexec_file específica de arch, se ha inicializado la instancia de la imagen. Por lo tanto, 'image->elf_headers' debe ser NULL. No tiene sentido liberar el búfer del encabezado elf en ese lugar. Tres personas diferentes han informado tres errores sobre la pérdida de memoria en x86_64 dentro de Redhat.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.15.46 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 5.17.14 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.18 (incluyendo) 5.18.3 (excluyendo)