È stata resa pubblica una vulnerabilità exploit per GRO Frag — una vulnerabilità locale di elevazione dei privilegi nel kernel Linux, riguardante la gestione di GRO e skb zero-copy nello stack di rete. La data esatta della scoperta iniziale non è indicata nei materiali pubblici. Da tracce aperte, si possono individuare due date: la correzione è stata discussa nella mailing list netdev 20 maggio 2026, dove questa vulnerabilità era già stata descritta come sfruttabile per sovrascrivere la cache delle pagine, e il PoC pubblico è stato pubblicato su GitHub Gist 22 maggio 2026.
Come misura temporanea fino all'installazione del kernel corretto, si può limitare il vettore d'attacco tramite sysctl: kernel.io_uring_disabled=1. Questa modalità impedisce la creazione di nuove istanze di io_uring da parte di processi non privilegiati, a meno che non siano inclusi nel gruppo autorizzato io_uring_group; con un valore di gruppo -1, l'accesso è consentito solo ai processi con CAP_SYS_ADMIN. Questa è una mitigazione, non una vera e propria correzione della vulnerabilità.
Il problema si trova nella funzione skb_gro_receive(): durante la fusione dei pacchetti GRO, il kernel poteva trasferire frammenti da zero-copy skb a un altro skb senza una corretta verifica dello stato zero-copy e del flag SKBFL_MANAGED_FRAG_REFS. Di conseguenza, le pagine di memoria, a cui il skb originale non teneva riferimenti separati, potevano essere liberate in modo errato, portando a un use-after-free. Nel patch è specificato che tale situazione può portare a UAF, e che la variante trovata era idonea per la riscrittura della cache delle pagine.
Il PoC pubblicato descrive la vulnerabilità come LPE attraverso GRO managed-frag UAF utilizzando io_uring SEND_ZC e l'interfaccia di rete virtuale veth. Nel commento al codice è indicato che sono interessati i kernel Linux 6.0+, l'exploitation è possibile da parte di un utente non privilegiato, ma richiede un io_uring disponibile; come correzione è stato indicato commit 4db79a322db8 con la modifica «net: gro: non unire skbs zcopy».
Le conseguenze di GRO Frag rientrano nella stessa pericolosa classe di errori di Copy Fail e Dirty Frag: un attaccante con accesso locale non privilegiato riesce a modificare i dati nella cache della pagina, ossia in memoria, senza la necessaria modifica del file su disco. Questi errori sono particolarmente fastidiosi poiché coinvolgono il confine tra file 'sola lettura' e il contenuto effettivo che il kernel e i processi vedono nei successivi accessi. Elastic ha precedentemente descritto questa classe come un modo pratico per ottenere l'accesso root tramite la corruzione della cache della pagina.
Al momento della pubblicazione, non era ancora stato assegnato un identificatore CVE specifico per GRO Frag, secondo le segnalazioni disponibili. Come misure temporanee, gli amministratori dovrebbero considerare l'aggiornamento del kernel a una versione correttiva, oltre a misure generali di riduzione del rischio per simili LPE: limitare i namespace utente non privilegiati dove possibile, controllare l'uso di io_uring e monitorare catene sospette legate all'escalation locale dei privilegi. Per attacchi affini come Copy Fail/DirtyFrag, Elastic consiglia anche di combinare il patching con la rilevazione di primitive di sfruttamento a basso livello.
Le primitive di sfruttamento a basso livello non rappresentano il "vulcano pronto", ma sono le tecniche tecniche di base su cui si costruisce l'exploit.
Nel contesto di GRO Frag, ciò può significare non rilevare il fatto finito che "l'utente è diventato root", ma cercare di notare azioni sospette singolari che l'exploit utilizza per ottenere maggiori privilegi.
Fonte: linux.org.ru
