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

Vulnerabilidad en kernel de Linux (CVE-2023-52568)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476 Desreferencia a puntero nulo (NULL)
Fecha de publicación:
02/03/2024
Última modificación:
11/12/2024

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: x86/sgx: Resuelve reclamación SECS versus error de página para la ejecución EAUG. El recuperador SGX EPC (ksgxd) puede reclamar la página SECS EPC para un enclave y establecer secs.epc_page en NULL. La página SECS se utiliza para EAUG y ELDU en el controlador de fallas de la página SGX. Sin embargo, la verificación NULL para secs.epc_page solo se realiza para ELDU, no para EAUG, antes de usarse. Solucione este problema haciendo la misma verificación NULL y recargando la página SECS según sea necesario tanto para EAUG como para ELDU. La página SECS contiene metadatos del enclave global. Solo se puede reclamar cuando no quedan otras páginas del enclave. En ese punto, prácticamente no se puede hacer nada con el enclave hasta que se vuelva a paginar la página SECS. Un enclave no puede ejecutarse ni generar errores de página sin una página SECS residente. Pero aún es posible que un #PF para una página que no es SECS se compita con la paginación de la página SECS: cuando la última página A residente que no es SECS activa un #PF en una página B no residente, y luego la página A y Ambos SECS se paginan antes de que se maneje el #PF en B. Para solucionar este error es necesario que la ejecución se active con un #PF para EAUG. A continuación se muestra un rastro de cuando sucede. ERROR: desreferencia del puntero NULL del kernel, dirección: 0000000000000000 RIP: 0010:sgx_encl_eaug_page+0xc7/0x210 Seguimiento de llamadas:? __kmem_cache_alloc_node+0x16a/0x440 ? xa_load+0x6e/0xa0 sgx_vma_fault+0x119/0x230 __do_fault+0x36/0x140 do_fault+0x12f/0x400 __handle_mm_fault+0x728/0x1110 handle_mm_fault+0x105/0x310 do_user_addr_fault+0x1ee/ 0x750? __this_cpu_preempt_check+0x13/0x20 exc_page_fault+0x76/0x180 asm_exc_page_fault+0x27/0x30

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.0 (incluyendo) 6.1.56 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.5.6 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc3:*:*:*:*:*:*