CVE-2026-80976 in Linux
Resumen
por VulDB • 2026-09-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
seg6: restablecer IP6CB tras la desencapsulación IPv6
decap_and_validate() extrae los encabezados SRv6 externos y convierte el paquete interno en el encabezado de red del skb. El bloque de control IPv6 (IP6CB) aún contiene valores recopilados durante el análisis del paquete externo, incluidos nhoff y las banderas de extension-header.
End.DX6 y End.DT6 enrutan el paquete IPv6 interno directamente a la ruta de entrada IPv6. Un usuario no privilegiado puede alcanzar End.DT6 desde un namespace de usuario y red instalando una SID local e inyectando un paquete externo con encabezados Hop-by-Hop y Destination Options, seguido por un SRH y un paquete IPv6 interno mínimo.
Los extension headers externos dejan un nhoff grande en IP6CB. Tras la desencapsulación, ip6_protocol_deliver_rcu() utiliza ese desplazamiento obsoleto sobre el paquete interno y lee más allá del encabezado skb. KASAN informa:
BUG: KASAN: slab-out-of-bounds in ip6_protocol_deliver_rcu ip6_protocol_deliver_rcu+0x1118/0x1450 ip6_input_finish+0x11b/0x240 seg6_local_input_core+0xed/0x2e0 lwtunnel_input+0x1e9/0x4e0 ipv6_rthdr_rcv+0x525f/0x6c50 ip6_protocol_deliver_rcu+0xcb7/0x1450
Antes de limpiar IP6CB para un paquete IPv6 interno, guarde su índice de interfaz entrante y el estado L3 slave. Restablezca ambos después de la limpieza y establezca nhoff en el campo nexthdr del encabezado base IPv6 interno.
Utilice IP6CB(skb)->iif en lugar de skb->skb_iif porque el procesamiento VRF puede reemplazar skb_iif con el maestro L3, mientras que IP6CB mantiene la interfaz receptora. Preserve IP6SKB_L3SLAVE por la misma razón.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.