CVE-2026-64579 in Linux
Resumen
por VulDB • 2026-08-05
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
xfrm: política: preasignar los contenedores imprecisos antes de que xfrm_hash_rebuild vuelva a insertar
El primer bucle de `xfrm_hash_rebuild()` preasigna los contenedores/cadenas que necesita el bucle de reinserción, por lo que la reinserción (después de `hlist_del_rcu()`) no puede asignar memoria ni fallar. Sin embargo, su condición de guardia está invertida: omite las políticas con `prefixlen < threshold` y preasigna para el resto.
El caso en que `prefixlen < threshold` es exactamente cuando `policy_hash_bysel()` devuelve NULL y la reinserción sigue la ruta asignadora `xfrm_policy_inexact_insert()`. Por lo tanto, el bucle preasigna memoria para las políticas exactas (que nunca realizan asignaciones) y omite las imprecisas, cuyo contenedor/nodo se asigna entonces con `GFP_ATOMIC` durante la reinserción. En caso de fallo, la ruta de error solo emite un `WARN_ONCE()` y continúa, dejando un nodo bydst envenenado; la siguiente llamada a `hlist_del_rcu()` del rebuild desreferencia `LIST_POISON2` y provoca una falla general (GPF). Es alcanzable bajo presión de memoria, siendo determinista mediante failslab.
Se invierte la condición de guardia para que la preasignación cubra exactamente las políticas reinseridas; la reinserción entonces no realiza ninguna asignación y no puede fallar.
Pantallazo (Crash): Oops: falta general de protección, probablemente por dirección no canónica 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI
KASAN: posible acceso a memoria fuera de límites en el rango [0xdead...]
... Workqueue: events xfrm_hash_rebuild RIP: 0010:xfrm_hash_rebuild+0x5b3/0x1190 RAX: dead000000000122 (LIST_POISON2 + desplazamiento) ... Trazado de llamadas: hlist_del_rcu (include/linux/rculist.h:599) xfrm_hash_rebuild (net/xfrm/xfrm_policy.c:1365) process_one_work (kernel/workqueue.c:3322) worker_thread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245) ... Kernel panic - not syncing: Excepción fatal en interrupción
If you want to get the best quality for vulnerability data then you always have to consider VulDB.