// 3 ZERO-DAY · 6 CVE · 5 EXPLOIT · 1 ADVISORY NELLE ULTIME 24H
La vulnerabilità CVE-2025-22050 nel driver usbnet del kernel Linux consente privilege escalation a un attaccante fisicamente presente. La race condition, corretta

Un attaccante con accesso fisico a un kiosk pubblico, un terminale POS o una workstation condivisa può innescare privilege escalation nel kernel Linux senza digitare alcuna password. Il 14 settembre 2026 Trend Micro Zero Day Initiative ha reso pubblica l'advisory ZDI-26-702, una vulnerabilità nel driver usbnet che consente esecuzione di codice arbitrario nel contesto del kernel a chiunque inserisca una periferica USB malevola. La falla, tracciata come CVE-2025-22050, dimostra come la gestione asincrona di periferiche USB rimanga un terreno minato: tre anni dopo la segnalazione al vendor, il meccanismo tecnico rivela una finestra temporale in cui la disconnessione fisica può corrompere lo stato del kernel.

Punti chiave
  • L'advisory ZDI-26-702 descrive una race condition nel driver usbnet del kernel Linux, pubblicata il 14 settembre 2026 dopo una disclosure iniziata il 20 settembre 2023.
  • Un attaccante fisicamente presente, senza credenziali, può innescare la falla per eseguire codice arbitrario nel contesto del kernel.
  • La causa root è la mancanza di locking appropriato nella work queue usbnet_deferred_kevent, con incongruenza tra i percorsi usb_submit_urb e __usbnet_queue_skb.
  • La patch ufficiale è la commit 04e906839a053f092ef53f4fb2d610983412b904 nel repository di Linus Torvalds.
  • Il CVSS score non è esplicitato né nell'advisory ZDI né nel record CVE.

La race condition tra hotplug e network stack

Il driver usbnet gestisce adattatori di rete USB ed è compilato nel kernel di praticamente ogni distribuzione Linux. La sua architettura combina tre strati asincroni: il sottosistema USB che rileva inserimenti e rimozioni, una work queue differita (usbnet_deferred_kevent) che gestisce eventi posticipati, e lo stack di rete che smista i pacchetti in arrivo.

Secondo l'advisory ZDI-26-702, "the specific flaw exists within the processing of the usbnet_deferred_kevent work queue. The issue results from the lack of proper locking when performing operations on an object". Il record CVE-2025-22050 aggiunge un dettaglio tecnico: usb_submit_urb manca della validazione usbnet_going_away che invece è presente in __usbnet_queue_skb. Questa incongruenza crea una race condition in cui la work queue opera su oggetti già liberati o in stato inconsistente.

Il percorso di exploit documentato da ZDI porta a privilege escalation. Il record CVE descrive anche un NULL pointer dereference in rx_complete attraverso defer_bh e __skb_unlink. Questo potrebbe essere una manifestazione correlata della stessa inconsistency di locking, ma le fonti non chiariscono se i due percorsi siano completamente coincidenti.

Perché la presenza fisica non rende la falla banale

L'advisory ZDI dichiara testualmente che "this vulnerability allows physically present attackers to escalate privileges on affected installations of Linux Kernel" e che "authentication is not required to exploit this vulnerability". Questa combinazione — nessuna credenziale, potenziale esecuzione nel contesto del kernel — trasforma ogni porta USB esposta in un vettore di compromissione totale.

L'impatto si concentra su ambienti dove il controllo fisico è debole: kiosk pubblici, terminali POS, workstation condivise, dispositivi industriali con HMI locale, sistemi embedded con porte USB frontali. La diffusione del driver usbnet amplifica il perimetro di rischio per organizzazioni con parco macchine eterogeneo.

Le fonti non specificano la data effettiva di merge della patch nel kernel mainline. La commit 04e9068 esiste nel repository di Torvalds, ma senza tag di versione associato nel dossier non è possibile stabilire quale release stabile l'abbia incorporata per prima.

Il fix: chiudere il ciclo di dipendenza nella work queue

"usbnet: fix cyclical race on disconnect with work queue" — Commit message, torvalds/linux@04e9068

La patch con hash 04e906839a053f092ef53f4fb2d610983412b904 interviene sul meccanismo di disconnessione del driver. Il messaggio di commit indica esplicitamente una "cyclical race", una condizione circolare in cui la disconnessione della periferica innesca lavoro nella coda differita, che a sua volta tenta operazioni sulla struttura già in fase di rilascio. Le modifiche al sorgente di drivers/net/usb/usbnet.c aggiungono gestione delle dipendenze cicliche nella work queue di disconnessione.

La struttura della correzione riflette la complessità del difetto: la gestione asincrona di tre sottosistemi (USB, work queue, network) ha prodotto una falla che ha resistito a tre anni di embargo prima della disclosure pubblica.

Cosa fare adesso

Gli amministratori di sistema possono considerare le seguenti azioni specifiche al caso documentato:

  • Verificare la presenza della commit 04e9068 nella versione del kernel in esecuzione, consultando il changelog della distribuzione o il repository sorgente.
  • Identificare i dispositivi con porte USB fisicamente accessibili in ambienti non controllati, dove la combinazione di accesso fisico e assenza di autenticazione per l'exploit presenta rischio maggiore.
  • Valutare restrizioni hardware sulle porte USB in scenari ad alto rischio, riconoscendo che questa misura esula dalle raccomandazioni esplicite delle fonti primarie.

Le distribuzioni derivate — Debian, Red Hat, Ubuntu, SUSE — mantengono proprie timeline di backporting. La verifica della disponibilità della patch spetta ai singoli vendor, che le fonti del dossier non elencano in dettaglio.

Limiti delle fonti

Questo articolo si basa su un advisory ZDI strutturato con integrazione tecnica da CVE record e patch GitHub; non sono disponibili fonti di reporting indipendenti. Il CVSS score non è esplicitato né nell'advisory ZDI-26-702 né nel record CVE-2025-22050. Non sono documentati exploit in-the-wild o proof-of-concept pubblici.

La data di rilascio dell'advisory (14 settembre 2026) riportata dalle fonti ZDI potrebbe essere indicativa di pre-pubblicazione o errore di sistema; il dossier non chiarisce questo aspetto.

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti


Fonti e riferimenti
  1. zerodayinitiative.com
  2. cve.org
  3. github.com
  4. trendmicro.com