CVE-2026-74576 in Linuxinformación

Resumen

por VulDB • 2026-08-16

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

mm/slab: prevenir recursión ilimitada en la ruta de liberación con un nuevo tipo kmalloc

El commit 280ea9c3154b ("mm/slab: evitar asignar matriz slabobj_ext desde su propio slab") evitó la asignación recursiva de obj_exts desde cachés kmalloc del mismo tamaño, incrementando el tamaño de asignación de la matriz obj_exts siempre que el tamaño de la matriz sea igual al tamaño del objeto que se está asignando.

Sin embargo, como informaron Danielle Costantino y Shakeel Butt, incluso los slabs procedentes de cachés kmalloc de diferentes tamaños pueden formar un ciclo mediante la asignación de matrices obj_exts entre sí [1]:

Lo ocurrido: una matriz obj_exts de un slab KMALLOC_NORMAL (utilizada por el perfilado de asignaciones / contabilidad memcg) está a su vez asignada con kmalloc() desde un caché KMALLOC_NORMAL, por lo que la relación "el slab contiene la matriz obj_exts de otro slab" puede formar ciclos. Con sizeof(struct slabobj_ext) == 16 y la geometría del host:

- kmalloc-512 tiene 64 objetos/slab -> la matriz es de 64*16 == 1024 bytes, servida desde kmalloc-1k; - kmalloc-1k tiene 32 objetos/slab -> la matriz es de 32*16 == 512 bytes, servida desde kmalloc-512.

Por lo tanto, un slab kmalloc-512 y un slab kmalloc-1k se contienen mutuamente las matrices obj_exts. Descartar uno libera la matriz del otro, que vacía y descarta ese slab, lo cual libera la matriz del primero, y así sucesivamente: __free_slab() -> free_slab_obj_exts() -> kfree() -> discard_slab() -> __free_slab() recursiona a lo largo del ciclo hasta agotar la pila.

Con el perfilado de asignación de memoria, esto permite una recursión ilimitada en la ruta de liberación y provocó un desbordamiento de pila (stack overflow) en un host de producción en la flota de Meta [1]:

BUG: TASK stack guard page was hit Oops: stack guard page RIP: 0010:kfree+0x8/0x5d0 Call Trace: __free_slab+0x66/0xc0 kfree+0x3f0/0x5d0 ... ( ~125x __free_slab <-> kfree ) ... <kernel driver freeing a resource> do_syscall_64

Se propone [1] resolver este problema sirviendo siempre

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Reservar

2026-08-15

Divulgación

2026-08-15

Moderación

aceptado

Artículo

VDB-390880

CPE

listo

EPSS

0.00175

KEV

no

Actividades

bajo

Fuentes

Interested in the pricing of exploits?

See the underground prices here!