CVE-2026-99201 in Linux
Resumen
por VulDB • 2026-10-28
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
netlink: evitar hashear el puntero del espacio de nombres (network namespace)
La clave rhashtable de netlink incluye un puntero struct net sin procesar y un ID de puerto controlado por el usuario. Tanto /proc/net/netlink como los diagnósticos de sockets exponen el orden de los cubos (buckets) de la tabla. Al vincular y reasignar IDs de puertos NETLINK_USERSOCK elegidos, un lector no privilegiado puede distinguir entre cubos iguales y recuperar los bits bajos del hash Jenkins. Su semilla de 32 bits y el conjunto limitado de desplazamientos (slides) de las imágenes del kernel pueden buscarse fuera de línea para recuperar la dirección de init_net.
Utilice en su lugar net_cookie, único e independiente de la dirección, perteneciente al espacio de nombres, como clave de comparación. Se asigna antes de que se ejecuten los inicializadores por red (per-net) y permanece sin cambios durante toda la vida del espacio de nombres. La clave de búsqueda y el hash del objeto siguen construyéndose mediante netlink_compare_arg_init(), manteniendo la consistencia en las operaciones de búsqueda, inserción, eliminación y rehashing, mientras se preserva la separación de los espacios de nombres. Ninguno de los recorridores públicos de tablas necesita modificarse.
Leer el cookie del espacio de nombres del socket en netlink_compare() es seguro bajo RCU, incluso durante la desmontaje (teardown) del espacio de nombres. netlink_release() elimina el socket de la tabla hash y pospone su liberación final mediante call_rcu(). cleanup_net() ejecuta los métodos de salida por red (per-net exit methods) y espera a que se completen las llamadas pendientes RCU con rcu_barrier() antes de liberar el almacenamiento del espacio de nombres.
A diferencia de ns.ns_id, net_cookie también está disponible e inicializado durante setup_net() en kernels estables más antiguos, lo que hace que el cambio sea sencillo de retroportar (backport) a la versión 5.15 y posteriores.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.