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

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

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

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: scsi: hisi_sas: Crear todos los archivos de volcado durante la inicialización de debugfs Para el debugfs actual de hisi_sas, después de que el usuario active el volcado, el controlador asigna espacio de memoria para guardar la información de registro y crear archivos de debugfs para mostrar la información guardada. En este proceso, los archivos de debugfs creados después de cada volcado. Por lo tanto, cuando se activa el volcado mientras el controlador está desvinculado, se produce el siguiente bloqueo: [67840.853907] No se puede gestionar la desreferencia del puntero NULL del núcleo en la dirección virtual 00000000000000a0 [67840.862947] Información de interrupción de memoria: [67840.865855] ESR = 0x0000000096000004 [67840.869713] EC = 0x25: DABT (EL actual), IL = 32 bits [67840.875125] SET = 0, FnV = 0 [67840.878291] EA = 0, S1PTW = 0 [67840.881545] FSC = 0x04: error de traducción de nivel 0 [67840.886528] Información de cancelación de datos: [67840.889524] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 [67840.895117] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [67840.900284] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [67840.905709] pgtable de usuario: páginas de 4k, VA de 48 bits, pgdp=0000002803a1f000 [67840.912263] [00000000000000a0] pgd=0000000000000000, p4d=0000000000000000 [67840.919177] Error interno: Oops: 0000000096000004 [#1] PREEMPT SMP [67840.996435] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [67841.003628] pc : down_write+0x30/0x98 [67841.007546] lr : start_creating.part.0+0x60/0x198 [67841.012495] sp : ffff8000b979ba20 [67841.016046] x29: ffff8000b979ba20 x28: 0000000000000010 x27: 0000000000024b40 [67841.023412] x26: 0000000000000012 x25: ffff20202b355ae8 x24: ffff20202b35a8c8 [67841.030779] x23: ffffa36877928208 x22: ffffa368b4972240 x21: ffff8000b979bb18 [67841.038147] x20: ffff00281dc1e3c0 x19: ffffffffffffffffe x18: 0000000000000020 [67841.045515] x17: 00000000000000000 x16: ffffa368b128a530 x15: ffffffffffffffff [67841.052888] x14: ffff8000b979bc18 x13: ffffffffffffffff x12: ffff8000b979bb18 [67841.060263] x11: 000000000000000 x10: 0000000000000000 x9: ffffa368b1289b18 [67841.067640] x8 : 0000000000000012 x7 : 0000000000000000 x6 : 00000000000003a9 [67841.075014] x5 : 0000000000000000 x4 : ffff002818c5cb00 x3 : 0000000000000001 [67841.082388] x2 : 000000000000000 x1 : ffff002818c5cb00 x0 : 00000000000000a0 [67841.089759] Seguimiento de llamadas: [67841.092456] escritura_inactiva+0x30/0x98 [67841.096017] creación_iniciativa.parte.0+0x60/0x198 [67841.100613] creación_directorio_debugfs+0x48/0x1f8 [67841.104950] creación_archivos_debugfs_v3_hw+0x88/0x348 [hisi_sas_v3_hw] [67841.111447] registros_instantáneos_debugfs_v3_hw+0x708/0x798 [hisi_sas_v3_hw] [67841.118111] escritura_activadora_debugfs_v3_hw+0x9c/0x120 [hisi_sas_v3_hw] [67841.125115] escritura de proxy completo+0x68/0xc8 [67841.129175] escritura de vfs+0xd8/0x3f0 [67841.132708] escritura de ksys+0x70/0x108 [67841.136317] escritura de __arm64_sys+0x24/0x38 [67841.140440] llamada al sistema invocada+0x50/0x128 [67841.144385] el0_svc_common.constprop.0+0xc8/0xf0 [67841.149273] do_el0_svc+0x24/0x38 [67841.152773] el0_svc+0x38/0xd8 [67841.156009] el0t_64_sync_handler+0xc0/0xc8 [67841.160361] el0t_64_sync+0x1a4/0x1a8 [67841.164189] Código: b9000882 d2800002 d2800023 f9800011 (c85ffc05) [67841.170443] ---[ fin del seguimiento 000000000000000 ]--- Para solucionar este problema, cree todos los directorios y archivos durante la inicialización de debugfs. De esta manera, el controlador solo necesita asignar espacio de memoria para guardar la información cada vez que el usuario activa el volcado.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.12.5 (excluyendo)