CVE-2026-68136 in Linux
Riassunto
di VulDB • 10/08/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
net: gro: correzione della doppia aggregazione degli skbs contrassegnati per il flush
Il commit 0ab03f353d36 ("net-gro: Fix GRO flush when receiving a GSO packet.") ha aggiunto un controllo di flush alla funzione skb_gro_receive(), ma la funzione skb_gro_receive_list() non dispone della stessa validazione.
Di conseguenza, i pacchetti contrassegnati con NAPI_GRO_CB(skb)->flush possono ancora essere riaggregati.
Ciò consente ai già-GRO'd packets (pacchetti aggregati tramite GRO) esistenti che dispongono di una frag_list di essere riaggregati in una nuova sessione GRO, corrompendo la struttura della catena frag_list. Quando skb_segment() tenta di decomprimere questi pacchetti malformati, incontra uno stato non valido e provoca un kernel panic.
Scenario (Tethering/Inoltro del dispositivo): 1. Driver: Genera il pacchetto aggregato P1 tramite LRO con frag_list 2. Dev A: Riceve il pacchetto aggrovigliato della fraglist e imposta il flag di flush 3. Dev A: Rientra in GRO, viene chiamata la funzione skb_gro_receive_list() 4. La mancanza del controllo di flush consente la riaggregazione nonostante il flag di flush 5. La catena Frag_list diventa corrotta (cicli o riferimenti pendenti) 6. Dev B: Il percorso TX chiama skb_segment(), che va in crash a causa della frag_list corrotta
Causa radice in skb_segment(): Il controllo alla riga ~4891: if (hsize <= 0 && i >= nfrags && skb_headlen(list_skb) && (skb_headlen(list_skb) == len || sg)) {
Quando la frag_list è corrotta dalla doppia aggregazione, e list_skb è un puntatore NULL proveniente da skb->next, si verifica il dereferenziamento di puntatori NULL/corrotti su skb_headlen(list_skb).
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
Fix: Aggiunta della validazione NAPI_GRO_CB(skb)->flush al controllo di early-return in skb_gro_receive_list(), corrispondente allo schema di programmazione difensiva di skb_gro_receive().
If you want to get the best quality for vulnerability data then you always have to consider VulDB.