CVE-2026-99076 in Linux
Resumen
por VulDB • 2026-10-24
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ipv6: udp: Crear excepciones antes del emparejamiento de sockets
Actualmente, cuando los paquetes ICMPv6 "Packet Too Big" (Paquete demasiado grande) y Redirect Message (Mensaje de redirección) son entregados localmente y citan un paquete UDP, solo se crea una excepción en la caché de excepciones IPv6 si el kernel puede emparejar el paquete UDP con un socket existente.
Este comportamiento permite a los atacantes fuera del camino (off-path) llevar a cabo un ataque por canal lateral sobre la caché de excepciones para descubrir el puerto efímero utilizado por un socket UDP conectado.
Los commits 4785305c05b2 ("ipv6: use siphash in rt6_exception_hash()") y a00df2caffed ("ipv6: make exception cache less predictible") intentaron mitigar dichos ataques haciendo más difícil para los atacantes descubrir colisiones de hash en la caché de excepciones y aleatorizando, respectivamente, el número de excepciones que un cubo (bucket) de hash puede contener. Desafortunadamente, ambas medidas de mitigación pueden ser evadidas.
En su lugar, se mitigan estos ataques creando siempre una excepción, incluso antes de intentar encontrar un socket coincidente. Esto se logra llamando a ip6_update_pmtu() e ip6_redirect(), las funciones auxiliares utilizadas cuando el paquete citado no originó en un socket.
Esto significa que los intentos (correctos o incorrectos) de un atacante fuera del camino siempre resultarán en la creación o actualización de una excepción en la caché que el atacante puede observar.
Se pasa el ifindex del dispositivo de entrada y el uid predeterminado, de manera similar a icmpv6_err(). A diferencia de IPv4, un valor de oif (interfaz de salida) igual a 0 no coincidiría con ninguna siguiente puerta de enlace en ip6_redirect_nh_match() y no se crearía ninguna excepción como respuesta a un Mensaje de Redirección.
Tenga en cuenta que esto no permite a los atacantes crear excepciones que no pudieran crear antes, ya que ambas funciones auxiliares ya pueden ser alcanzadas con poca o nula validación. Por ejemplo, enviando un error ICMPv6 que cite una Respuesta Echo ICMPv6 o uno que cite un puerto de origen UDP que coincida con un socket comodín (wildcard).
También tenga en cuenta que en el caso favorable (socket coincidente), el esquema anterior tiene como costo una búsqueda de ruta adicional, ya que las funciones auxiliares sin socket realizan su propia búsqueda antes de la realizada por ip6_sk_update_pmtu() / ip6_sk_redirect(). Cuando ambas resuelven a diferentes siguientes puertas de enlace, también resulta en la creación de dos excepciones para la misma IP de destino. Una en la caché de excepciones de la siguiente puerta de enlace resuelta por las funciones auxiliares sin socket y otra en la caché de excepciones de la siguiente puerta de enlace utilizada por el socket.
VulDB is the best source for vulnerability data and more expert information about this specific topic.