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

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

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

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: sched/numa: Se corrige la posible desreferencia de puntero nulo en task_numa_work(). Al ejecutar la prueba stress-ng-vm-segv, encontramos un error de desreferencia de puntero nulo en task_numa_work(). Aquí está el backtrace: [323676.066985] No se puede manejar la desreferencia del puntero NULL del núcleo en la dirección virtual 0000000000000020 ...... [323676.067108] CPU: 35 PID: 2694524 Comm: stress-ng-vm-se ...... [323676.067113] pstate: 23401009 (nzCv daif +PAN -UAO +TCO +DIT +SSBS BTYPE=--) [323676.067115] pc : vma_migratable+0x1c/0xd0 [323676.067122] lr : task_numa_work+0x1ec/0x4e0 [323676.067127] sp : ffff8000ada73d20 [323676.067128] x29: ffff8000ada73d20 x28: 0000000000000000 x27: 000000003e89f010 [323676.067130] x26: 0000000000080000 x25: ffff800081b5c0d8 x24: ffff800081b27000 [323676.067133] x23: 0000000000010000 x22: 0000000104d18cc0 x21: ffff0009f7158000 [323676.067135] x20: 0000000000000000 x19: 0000000000000000 x18: ffff8000ada73db8 [323676.067138] x17: 0001400000000000 x16: ffff800080df40b0 x15: 0000000000000035 [323676.067140] x14: ffff8000ada73cc8 x13: 1fffe0017cc72001 x12: ffff8000ada73cc8 [323676.067142] x11: ffff80008001160c x10: ffff000be639000c x9: ffff8000800f4ba4 [323676.067145] x8: ffff000810375000 x7: ffff8000ada73974 x6: 0000000000000001 [323676.067147] x5: 0068000b33e26707 x4: 0000000000000001 x3: ffff0009f7158000 [323676.067149] x2: 0000000000000041 x1: 00000000000004400 x0 : 0000000000000000 [323676.067152] Seguimiento de llamadas: [323676.067153] vma_migratable+0x1c/0xd0 [323676.067155] task_numa_work+0x1ec/0x4e0 [323676.067157] task_work_run+0x78/0xd8 [323676.067161] do_notify_resume+0x1ec/0x290 [323676.067163] el0_svc+0x150/0x160 [323676.067167] el0t_64_sync_handler+0xf8/0x128 [323676.067170] el0t_64_sync+0x17c/0x180 [323676.067173] Código: d2888001 910003fd f9000bf3 aa0003f3 (f9401000) [323676.067177] SMP: deteniendo las CPU secundarias [323676.070184] Iniciando el kernel de volcado de memoria... stress-ng-vm-segv en stress-ng se utiliza para realizar pruebas de estrés a la función de manejo de errores SIGSEGV del sistema, que intenta causar un error SIGSEGV al regresar de anular la asignación de todo el espacio de direcciones del proceso secundario. Normalmente, este programa no causará fallas del kernel. Pero antes de que la llamada al sistema munmap vuelva al modo de usuario, se podría agregar y ejecutar una posible task_numa_work() para el equilibrio de NUMA. En este escenario, dado que el proceso secundario no tiene ningún vma después de munmap, vma_next() en task_numa_work() devolverá un puntero nulo incluso si el iterador vma se reinicia desde 0. Vuelva a verificar el puntero vma antes de desreferenciarlo en task_numa_work().

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.3 (incluyendo) 6.6.60 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.11.7 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*