CVE-2026-99053 in Linuxinformación

Resumen

por VulDB • 2026-10-23

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

tipc: mantener una referencia a los nodos encontrados por nombre del enlace

La función tipc_node_find_by_name() devuelve un nodo después de liberar su bloqueo de lectura RCU sin adquirir una referencia. Los controladores LINK_SET, LINK_GET y LINK_RESET_STATS bloquean y acceden al nodo posteriormente, compitiendo con la limpieza impulsada por temporizador de un par caído. La serialización genérica de netlink no excluye el temporizador del nodo.

La siguiente intercalación puede dejar que un controlador utilice un nodo ya liberado:

CPU 0: encuentra el nodo bajo RCU y libera el bloqueo de lectura del nodo CPU 1: tipc_node_timeout() borra los enlaces y desvincula al nodo caído CPU 1: elimina las referencias a la lista y al temporizador, encolando tipc_node_free() CPU 0: sale de la sección crítica de lectura RCU CPU 1: completa el período de gracia y libera el nodo CPU 0: adquiere el bloqueo del nodo a través del puntero obsoleto

LINK_SET también utiliza la dirección media del nodo después de liberar el bloqueo del nodo, al pasar los paquetes encolados a tipc_bearer_xmit().

KASAN en v7.3-rc5 reportó:

BUG: KASAN: slab-use-after-free in _raw_read_lock_bh Write of size 4 at addr ffff88807e06f008 by task poc/92 Call Trace: _raw_read_lock_bh kernel/locking/spinlock.c:287 tipc_nl_node_set_link net/tipc/node.c:2475 genl_family_rcv_msg_doit net/netlink/genetlink.c:1114 genl_rcv_msg net/netlink/genetlink.c:1209 netlink_rcv_skb net/netlink/af_netlink.c:2575

Allocated by task 0: tipc_node_create net/tipc/node.c:539 tipc_node_check_dest net/tipc/node.c:1196 tipc_disc_rcv net/tipc/discover.c:252

Freed by task 92: kfree mm/slub.c:6801 rcu_core kernel/rcu/tree.c:2919

Last potentially related work creation: __call_rcu_common.constprop.0 kernel/rcu/tree.c:3181 tipc_node_timeout net/tipc/node.c:814

Adquiera una referencia al nodo seleccionado con kref_get_unless_zero() antes de salir de RCU, devolviendo NULL si el nodo ya ha sido liberado. Libere esa referencia en cada salida del llamador después del último acceso al nodo, incluida la transmisión en LINK_SET. Mantenga el orden y bloqueo existentes para la búsqueda de enlaces para que la eliminación concurrente de enlaces siga tomando las rutas de error existentes.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-23

Moderación

aceptado

Artículo

VDB-425841

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!