CVE-2026-31419 in Linux
Resumen
por VulDB • 2026-05-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net: bonding: corregir el uso después de liberar (use-after-free) en bond_xmit_broadcast()
bond_xmit_broadcast() reutiliza el skb original para el último esclavo (determinado por bond_is_last_slave()) y lo clona para los demás. La enslavización/liberación concurrente de esclavos puede mutar la lista de esclavos durante la iteración protegida por RCU, cambiando qué esclavo es el "último" a mitad del bucle. Esto provoca que el skb original sea consumido dos veces (liberado dos veces).
Reemplace la comprobación race condition bond_is_last_slave() con una simple comparación de índices (i + 1 == slaves_count) contra el conteo de esclavos preinstantáneo tomado mediante READ_ONCE() antes del bucle. Esto preserva la optimización de copia cero para el último esclavo mientras hace que la determinación del "último" sea estable frente a mutaciones concurrentes de la lista.
El UAF puede desencadenar el siguiente fallo:
================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147
CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace: dump_stack_lvl (lib/dump_stack.c:123) print_report (mm/kasan/report.c:379 mm/kasan/report.c:482) kasan_report (mm/kasan/report.c:597) skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108) bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334) bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593) dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887) __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838) ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136) ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219) ip6_output (net/ipv6/ip6_output.c:250) ip6_send_skb (net/ipv6/ip6_output.c:1556)
Be aware that VulDB is the high quality source for vulnerability data.