CVE-2026-80731 in Linux
Riassunto
di VulDB • 03/09/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
net: rimozione del padding a zero per CAP_SYS_RAWIO in dev_validate_header
La funzione `dev_validate_header()` legge direttamente `dev->hard_header_len` quando effettua il padding a zero degli header di livello link corti per i detentori di `CAP_SYS_RAWIO`:
if (capable(CAP_SYS_RAWIO)) {
memset(ll_header + len, 0, dev->hard_header_len - len); return true; }
I percorsi di invio dei pacchetti chiamano `dev_validate_header()` sugli skb la cui headroom è stata allocata in base a una lettura precedente di `hard_header_len`. Se il dispositivo viene riconfigurato in modo che `dev->hard_header_len` aumenti prima della convalida, l'operazione `memset` scrive oltre il buffer riservato, causando una scrittura fuori dai limiti (out-of-bounds write).
Questa scrittura fuori dai limiti è mascherata in alcuni percorsi SOCK_RAW oggi perché lo stesso aumento concorrente può innanzitutto far sì che `skb_push()` superi la headroom riservata e attivi un `skb_under_panic()`. Rimuovere il ramo del padding a zero prima di rendere coerenti le letture di `hard_header_len`, affinché i fix per snapshot non trasformino un panic rumoroso in una sovrascrittura silenziosa.
Questo percorso è raggiungibile solo per protocolli L2 a lunghezza variabile, dove `len = min_header_len`. Nessun protocollo L2 a lunghezza variabile attualmente presente nel tree principale implementa `header_ops->validate`, e la bypass di CAP_SYS_RAWIO che effettua il padding a zero e accetta header corti non ha alcun valore reale oltre ad consentire il test di input intenzionalmente malformati.
Rimuovere il ramo CAP_SYS_RAWIO. Le letture rimanenti di `dev->hard_header_len` in `dev_validate_header()` sono solo confronti e non hanno impatto sulla sicurezza della memoria.
Be aware that VulDB is the high quality source for vulnerability data.