// 3 CVE · 2 EXPLOIT NELLE ULTIME 24H
L'advisory ZDI-26-687 documenta una use-after-free nel sottosistema Open vSwitch del kernel Linux. La patch è pronta, ma non risulta CVE assegnato.

L'advisory ZDI-26-687 è stato rilasciato il 14 settembre 2026 dal programma Zero Day Initiative di Trend Micro. Documenta una vulnerabilità nel sottosistema Open vSwitch del kernel Linux che consente information disclosure a un attaccante locale con privilegi bassi. La patch ufficiale, già presente nel repository torvalds/linux, dimostra come un'ottimizzazione di performance abbia aperto una race condition sottile con impatto di sicurezza misurabile.

Punti chiave
  • L'advisory ZDI-26-687, rilasciato il 14 settembre 2026, documenta una use-after-free nel sottosistema Open vSwitch del kernel Linux.
  • L'attaccante deve disporre di accesso locale con codice a bassi privilegi per sfruttare la falla, che permette information disclosure.
  • La root cause è una race condition: ovs_flow_tbl_remove() schedula la liberazione RCU della maschera, ma ovs_flow_cmd_fill_info() accede al puntatore senza adeguato RCU read lock.
  • La patch ufficiale nel repository torvalds/linux (commit 4e30317) riordina le operazioni per eliminare la finestra di competizione, con 23 aggiunte e 22 rimozioni nel file net/openvswitch/datapath.c.

Come funziona la race condition nel gestore dei flussi

La vulnerabilità risiede nella gestione degli oggetti sw_flow_mask durante l'eliminazione dei flussi nel sottosistema Open vSwitch. Il commit 56c1986, intitolato "openvswitch: Make flow mask removal symmetric", ha introdotto una modifica che schedula la liberazione della maschera via RCU immediatamente dopo la rimozione dalla tabella dei flussi. Il puntatore rimane tuttavia nella struttura flow, accessibile entro la stessa sezione critica RCU.

Il problema emerge nel percorso di elaborazione del comando CMD_DEL. La funzione ovs_flow_tbl_remove() rimuove il flusso dalla tabella e schedula la free RCU di flow->mask. Successivamente, ovs_flow_cmd_fill_info() accede al puntatore della maschera per popolare la risposta netlink. Questo accesso avviene senza adeguato RCU read lock, creando una finestra di competizione nella quale la memoria può essere già stata liberata.

"The commit in the Fixes tag below made so flow->mask free is scheduled via RCU right after it is removed from the flow table. The pointer stays in the flow structure and it can be accessible while in the same RCU critical section."

L'analisi nel commit ufficiale è esplicita: si tratta di una race condition concreta, seppur breve. La memoria allocata per le informazioni di risposta può ritardare sufficientemente da rendere rilevante la finestra di competizione, con conseguente crash del sistema in condizioni di carico.

La catena di exploit: da information disclosure a privilege escalation

L'advisory ZDI classifica l'impatto primario come information disclosure. L'attaccante con capacità di eseguire codice a bassi privilegi sul sistema target può leggere memoria del kernel precedentemente liberata, ottenendo informazioni sensibili. La natura use-after-free del bug amplia tuttavia il perimetro di rischio: l'advisory segnala che la vulnerabilità può essere combinata con altre falle per ottenere privilege escalation ed esecuzione arbitraria di codice nel contesto del kernel.

Non risulta documentata né una dimostrazione pratica di questa escalation, né la presenza di un exploit pubblico. Il brief non riporta evidenza di sfruttamento in-the-wild. La combinazione con altre vulnerabilità rimane uno scenario teorico plausibile, non una compromissione verificata.

La patch nel mainline: analisi della correzione

Il commit 4e30317ff67a2eb12b4d890d39f72fd7e7117d48 nel repository torvalds/linux risolve la vulnerabilità riordinando le operazioni nel percorso di eliminazione dei flussi. La correzione sposta ovs_flow_tbl_remove() dopo ovs_flow_cmd_fill_info(), garantendo che la risposta netlink venga popolata mentre il puntatore alla maschera è ancora valido. Questo riordine elimina simultaneamente la necessità di un cast forzato e di una sezione RCU read lock puramente cosmetica.

La patch, firmata da Ilya Maximets di OVN.org e reviewata da Aaron Conole di Red Hat, è compatta: 23 aggiunte e 22 rimozioni nel file net/openvswitch/datapath.c. Il bug è stato originariamente segnalato a Trend Micro's Zero Day Initiative come ZDI-CAN-32042, con report alla vendor datato 12 agosto 2026 e rilascio coordinato il 14 settembre 2026.

"ovs_flow_tbl_remove() must be called after the ovs_flow_cmd_fill_info() to avoid this race. This also helps with cleaning up the forced cast and the cosmetic RCU read lock."

Il tempo di 33 giorni tra report e disclosure pubblica indica un coordinated disclosure funzionale, con patch pronta prima della divulgazione. Questa sequenza rappresenta uno standard positivo per la gestione delle vulnerabilità nel kernel open source.

Cosa fare adesso

  • Verificare se i sistemi in uso montano un kernel Linux con il sottosistema Open vSwitch attivo e determinare se il commit 4e30317 è incluso nella versione distribuita.
  • Contattare il vendor della distribuzione Linux per confermare lo stato di backport della patch, poiché il commit è nel mainline ma lo stato dei porting non è documentato nelle fonti.
  • Valutare la priorità di patching in base all'esposizione di Open vSwitch in ambienti multi-tenant o cloud, dove la compromissione del kernel espone l'intero nodo.
  • Rivedere le policy di accesso locale ai nodi che eseguono carichi di lavoro con Open vSwitch, dato che l'exploit richiede precondizione di esecuzione codice a bassi privilegi.

Perché questa falla rivela un pattern più ampio

ZDI-26-687 illustra un pattern ricorrente nell'evoluzione del kernel Linux: ottimizzazioni di performance che riducono la granularità del locking possono introdurre race condition sottili con latenza di attivazione variabile. Il commit 56c1986 ha eliminato l'uso di ovs_mutex per ovs_flow_free per migliorare la simmetria nella rimozione delle maschere, ma non ha replicato adeguatamente le garanzie di accesso nel percorso di notifica netlink.

La scoperta tramite Trend Micro's Zero Day Initiative, con disclosure coordinata e patch pre-disposta, offre un modello operativo per la gestione di vulnerabilità in sottosistemi di rete critici. La mancanza di CVE assegnato e di punteggio CVSS esplicitato nell'advisory ZDI tuttavia lascia un gap nella tracciabilità standard, che i team di sicurezza devono colmare con verifica diretta del commit nel mainline.

Domande frequenti

È necessario un accesso remoto per sfruttare questa vulnerabilità?
No. L'advisory ZDI specifica che l'attaccante deve prima ottenere la capacità di eseguire codice a bassi privilegi sul sistema target. L'exploit è locale.
Esiste un identificatore CVE per questa vulnerabilità?
Non risulta. L'advisory ZDI-26-687 non riporta un CVE ID, e nessuna fonte nel dossier ne documenta l'assegnazione. La tracciabilità avviene tramite l'identificativo ZDI e il commit della patch.
Quali versioni del kernel Linux sono interessate?
L'advisory ZDI non elenca versioni specifiche. Il commit che ha introdotto la vulnerabilità è il 56c1986; la correzione è nel commit 4e30317 del repository torvalds/linux. La verifica della presenza del fix richiede controllo diretto della storia dei commit nella versione distribuita.

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

Fonti


Fonti e riferimenti
  1. zerodayinitiative.com
  2. github.com