CVE-2026-68136 in Linuxinformación

Resumen

por VulDB • 2026-08-10

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

net: gro: corregir la doble agregación de skbs marcados para vaciado (flush)

El commit 0ab03f353d36 ("net-gro: Fix GRO flush when receiving a GSO packet.") añadió una comprobación de vaciado en skb_gro_receive(), pero skb_gro_receive_list() carece de la misma validación.

Como resultado, los paquetes marcados con NAPI_GRO_CB(skb)->flush pueden seguir siendo re-agregados.

Esto permite que los ya agregados mediante GRO (GRO'd) y que poseen una frag_list existente sean re-agregados en una nueva sesión GRO, corrompiendo la estructura de la cadena frag_list. Cuando skb_segment() intenta desempaquetar estos paquetes malformados, encuentra un estado inválido y desencadena un kernel panic.

Escenario (Tethering/Reenvío de dispositivos): 1. Controlador: Genera el paquete agregado P1 mediante LRO con frag_list 2. Dispositivo A: Recibe el paquete agregado con fraglist y la bandera flush activada 3. Dispositivo A: Vuelve a entrar en GRO, se invoca skb_gro_receive_list() 4. La falta de comprobación de flush permite la re-agregación a pesar de la bandera flush 5. La cadena Frag_list queda corrompida (bucles o referencias colgantes) 6. Dispositivo B: El camino TX llama a skb_segment(), que falla debido a la frag_list corrupta

Causa raíz en skb_segment(): La comprobación en la línea ~4891: if (hsize <= 0 && i >= nfrags && skb_headlen(list_skb) && (skb_headlen(list_skb) == len || sg)) {

Cuando frag_list está corrupta por una doble agregación, y list_skb es un puntero NULL procedente de skb->next, se produce la desreferenciación de punteros NULL/corruptos en skb_headlen(list_skb).

Rastro de llamadas (Call Trace): skb_headlen(NULL skb) skb_segment tcp_gso_segment tcp4_gso_segment inet_gso_segment skb_mac_gso_segment __skb_gso_segment skb_gso_segment validate_xmit_skb validate_xmit_skb_list sch_direct_xmit qdisc_restart __qdisc_run qdisc_run net_tx_action

Solución: Añadir la validación NAPI_GRO_CB(skb)->flush a la comprobación de retorno anticipado en skb_gro_receive_list(), coincidiendo con el patrón de programación defensiva utilizado en skb_gro_receive().

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

Linux

Reservar

2026-07-30

Divulgación

2026-08-10

Moderación

aceptado

Artículo

VDB-387475

CPE

listo

EPSS

0.00175

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!