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

Vulnerabilidad en Linux (CVE-2026-23352)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/03/2026
Última modificación:
24/04/2026

Descripción

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br /> <br /> x86/efi: aplazar la liberación de la memoria de servicios de arranque<br /> <br /> efi_free_boot_services() libera la memoria ocupada por EFI_BOOT_SERVICES_CODE y EFI_BOOT_SERVICES_DATA usando memblock_free_late().<br /> <br /> Hay dos problemas con eso: memblock_free_late() debería usarse para la memoria asignada con memblock_alloc() mientras que la memoria reservada con memblock_reserve() debería liberarse con free_reserved_area().<br /> <br /> Más agudamente, con CONFIG_DEFERRED_STRUCT_PAGE_INIT=y efi_free_boot_services() se llama antes de que se complete la inicialización diferida del mapa de memoria.<br /> <br /> Benjamin Herrenschmidt informa que esto causa una fuga de ~140MB de RAM en instancias EC2 t3a.nano que solo tienen 512MB de RAM.<br /> <br /> Si la memoria liberada reside en las áreas cuyo mapa de memoria aún no está inicializado, no se liberarán realmente porque memblock_free_late() llama a memblock_free_pages() y esta última omite las páginas no inicializadas.<br /> <br /> Usar free_reserved_area() en este punto también es problemático porque __free_page() accede al &amp;#39;buddy&amp;#39; de la página liberada y eso de nuevo podría terminar en una parte no inicializada del mapa de memoria.<br /> <br /> Retrasar todo efi_free_boot_services() podría ser problemático porque además de liberar la memoria de servicios de arranque, actualiza efi.memmap sin ninguna sincronización y eso es indeseable tarde en el arranque cuando hay concurrencia.<br /> <br /> Un enfoque más robusto es aplazar solo la liberación de la memoria de servicios de arranque EFI.<br /> <br /> Dividir efi_free_boot_services() en dos. Primero, efi_unmap_boot_services() recopila los rangos que deberían liberarse en un array, luego efi_free_boot_services() los libera más tarde una vez que la inicialización diferida está completa.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.0.1 (incluyendo) 5.10.253 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.203 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.167 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.130 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.12.77 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (incluyendo) 6.18.17 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 (incluyendo) 6.19.7 (excluyendo)
cpe:2.3:o:linux:linux_kernel:2.6.39.1:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:3.0:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*