
Exploit di escalation dei privilegi del kernel Linux per CVE-2026-46242, una race condition use-after-free in epoll, con root affidabile al 99% su desktop, server e dispositivi Android.

Un processo non privilegiato che ottiene i privilegi di root su Google kernelCTF.
Bad Epoll (CVE-2026-46242) è una use-after-free da race condition nel sottosistema
epoll del kernel Linux. Questo bug permette a un processo non privilegiato di diventare root, non solo su desktop e server Linux ma anche su dispositivi Android.
Bad Epoll è stato segnalato e sfruttato da Jaeyoung Chung come sottomissione 0-day a Google kernelCTF, che premia un exploit del kernel Linux con $71,337+. La sottomissione di Bad Epoll ha ricevuto un premio di $92,337.
[!NOTE] L'AI di Anthropic, Mythos, ha trovato un altro bug di race nello stesso codice epoll ma non ha visto Bad Epoll.
Un bug raro che può ottenere root su Android. La maggior parte dei bug di privilege escalation su Linux non può ottenere root su Android. Copy Fail e le sue varianti, per esempio, richiedono moduli che Android non carica mai. Delle circa 130 vulnerabilità sfruttate su Google kernelCTF, solo una decina sono candidate per ottenere root su Android. Bad Epoll è una di queste.
Nessun kill-switch. Copy Fail e le sue varianti possono essere neutralizzati scaricando i loro moduli vulnerabili, ma epoll non ha questa opzione. È una funzionalità centrale del kernel su cui si basano il sistema operativo, i servizi di rete e i browser. L'unico modo per risolverlo è applicare la patch.
Finestra di race minuscola, ma l'attacco è affidabile al 99%. La finestra di race del bug è larga solo circa sei istruzioni, e un tentativo normale quasi mai la colpisce. L'exploit allarga quella finestra ed esegue un ciclo di retry che non manda mai in crash il kernel. Il risultato è un exploit affidabile al 99%, come descritto nella panoramica dell'attacco qui sotto.
Un singolo commit nel 2023 ha introdotto due distinte race condition nel codice epoll, che in tutto conta solo circa 2.500 righe. Entrambe si sono rivelate bug critici che possono portare a privilege escalation.
Il primo è stato trovato da Mythos di Anthropic e segnalato come CVE-2026-43074, con i dettagli nel report pubblico di Anthropic, ANT-2026-CM0TCREP. Questo risultato è di per sé impressionante, perché i bug di race nel kernel sono noti per essere difficili da trovare. Ha dimostrato la capacità di un modello AI di frontiera di trovare bug di race. Un ricercatore indipendente ha poi sottomesso un exploit 1-day per esso a kernelCTF.
L'altra race è Bad Epoll, che Mythos non ha visto. Dato che Mythos ha trovato il primo bug in questo piccolo percorso di codice epoll, è probabile che abbia esaminato la stessa area con una profondità significativa. Non possiamo sapere esattamente perché abbia mancato Bad Epoll, ma due fattori probabilmente lo hanno reso difficile da trovare.
La finestra di race è minuscola. È larga solo circa sei istruzioni, quindi l'esatto interleaving dei thread è difficile da immaginare anche guardando il codice vulnerabile.
C'erano poche prove a runtime. Dopo che CVE-2026-43074 è stato corretto, la use-after-free di Bad Epoll di solito non attiva KASAN, il principale rilevatore di errori di memoria del kernel. Senza quel segnale, Mythos potrebbe non aver avuto abbastanza fiducia per segnalarlo come un bug reale.
Anche correggere Bad Epoll è stato difficile. La prima patch dei maintainer non ha risolto completamente il problema, e una patch corretta è arrivata solo due mesi dopo la prima segnalazione del bug. È un tempo lungo per un kernel che di solito gestisce le questioni di sicurezza con urgenza.
Nel complesso, Bad Epoll mostra quanto siano difficili le race condition in ogni fase. Sono difficili da trovare anche per un modello di frontiera, difficili da correggere correttamente e, come mostra la sezione successiva, difficili da sfruttare in modo affidabile. Suggerisce anche una direzione di ricerca sulle vulnerabilità che rimane degna di essere esplorata in presenza di modelli AI di frontiera: scoprire un reale impatto sulla sicurezza dietro condizioni temporali ristrette e prove deboli.
[!NOTE] I ricercatori indipendenti Qi Tang e Junxi Qian hanno anche segnalato CVE-2026-43074 al team del kernel Linux il 30 marzo 2026, lo stesso giorno di Anthropic. I loro nomi sono stati inavvertitamente omessi dai crediti per la correzione upstream. Grazie a Guidong Han per aver segnalato queste segnalazioni indipendenti. I tre ricercatori hanno poi trovato ancora un'altra use-after-free da race condition in epoll.
Ecco una panoramica di alto livello dell'attacco, per i curiosi.
Due oggetti epoll collegati. Chiuderli entrambi contemporaneamente attiva la race.
Due dei percorsi di chiusura di epoll vengono eseguiti contemporaneamente e si scontrano. Uno libera un oggetto mentre l'altro sta ancora scrivendo al suo interno, e questa è la use-after-free (UAF).
La finestra di race, e come l'exploit la sfrutta.
L'exploit usa quattro oggetti epoll raggruppati in due coppie. Una coppia attiva la race, mentre l'altra diventa la vittima. Da lì, l'exploit trasforma la scrittura UAF di 8 byte in una UAF su un oggetto file, e usa un attacco cross-cache per controllare completamente il contenuto del file.
Trasformare il bug in una lettura arbitraria della memoria del kernel tramite /proc/self/fdinfo.