CVE-2026-31429
net: skb: corregir la liberación entre cachés del encabezado skb asignado por KFENCE
- Publicado
- 20 abr 2026
- Actualizado
- 11 may 2026
- Asignación de CNA
- Linux
- Evidencia observada
- 25 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HBajo · próximos 30 días
- Percentil
- 17,9 %
- Fecha del modelo
- 21 sept 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: skb: corregir la liberación entre cachés del encabezado skb asignado por KFENCE SKB_SMALL_HEAD_CACHE_SIZE se establece intencionalmente a un valor que no es potencia de 2 (p. ej. 704 en x86_64) para evitar colisiones con los tamaños genéricos de los buckets de kmalloc. Esto garantiza que skb_kfree_head() pueda usar de forma fiable skb_end_offset para distinguir los encabezados skb asignados desde skb_small_head_cache frente a las cachés genéricas de kmalloc. Sin embargo, cuando KFENCE está habilitado, kfence_ksize() devuelve el tamaño de asignación solicitado exacto en lugar del tamaño del bucket de slab. Si un llamador (p. ej. bpf_test_init) asigna los datos del encabezado skb mediante kzalloc() y el tamaño solicitado resulta ser igual a SKB_SMALL_HEAD_CACHE_SIZE, entonces slab_build_skb() -> ksize() devuelve ese valor exacto. Después de restar la sobrecarga de skb_shared_info, skb_end_offset termina coincidiendo con SKB_SMALL_HEAD_HEADROOM, lo que provoca que skb_kfree_head() libere incorrectamente el objeto a skb_small_head_cache en lugar de devolverlo a la caché kmalloc original, resultando en una liberación entre cachés de slab: kmem_cache_free(skbuff_small_head): Caché de slab incorrecta. Se esperaba skbuff_small_head pero se obtuvo kmalloc-1k Corrija esto llamando siempre a kfree(head) en skb_kfree_head(). Esto mantiene la ruta de liberación genérica y evita la clasificación errónea específica del asignador para los objetos KFENCE.
Fuentes
1POC para CVE-2026-31429 (Linux Kernel >= 6.3 < 6.12.82 Confusión Cross-Cache de Slab) - vulnerabilidad descubierta por Antonius - w1sdom - bluedragonsec.com
Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.