Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
bad-epoll — 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. | Kitploit
Strumenti/GitHubGitHub/j-jaeyoung/bad-epoll
Sicurezza AndroidEscalation di PrivilegiAnalisi delle VulnerabilitàExploitCTFApprendimento e FormazioneBinary Exploitation
GitHubj-jaeyoung/bad-epoll

bad-epoll

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.

Vedi Repository
50644143 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Bad Epoll: il bug sfuggito a Mythos

Exploit Bad Epoll in esecuzione: un processo non privilegiato che scala a root

Un processo non privilegiato che scala a root su Google kernelCTF.

Bad Epoll (CVE-2026-46242) è una use-after-free da race condition nel sottosistema epoll del kernel Linux. Questo bug consente 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 invio 0-day a Google kernelCTF, che premia un exploit per il kernel Linux con $71.337+.

[!NOTE] L'IA di Anthropic, Mythos, ha trovato un altro bug di race nello stesso codice di epoll ma non ha visto Bad Epoll.


Perché è grave

  1. Un bug raro in grado di dare root su Android. La maggior parte dei bug di escalazione dei privilegi su Linux non può assolutamente dare root su Android. Copy Fail e le sue varianti, ad esempio, richiedono moduli che Android non carica mai. Delle circa 130 vulnerabilità sfruttate su kernelCTF di Google, solo una decina sono candidate per dare root su Android. Bad Epoll è una di queste.

    • Bad Epoll può essere innescato anche dall'interno della sandbox del renderer di Chrome, che blocca quasi tutti gli altri bug del kernel. Un exploit del renderer potrebbe quindi concatenarsi con Bad Epoll per ottenere l'esecuzione di codice nel kernel, lo stesso impatto dimostrato da Project Zero in "Dall'esecuzione di codice nel renderer di Chrome al kernel con MSG_OOB".
  2. 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à fondamentale del kernel su cui si basano il sistema operativo, i servizi di rete e i browser. L'unico modo per risolverlo è applicare la patch.

  3. Finestra di race minuscola, ma l'attacco è affidabile al 99%. La finestra di race del bug copre solo circa sei istruzioni, e un tentativo normale quasi mai la centra. L'exploit allarga quella finestra ed esegue un ciclo di ripetizione che non manda mai in crash il kernel. Il risultato è un exploit affidabile al 99%, come descrive la panoramica dell'attacco qui sotto.


Il bug sfuggito a Mythos

Un singolo commit del 2023 ha introdotto due race condition separate nel codice di epoll, composto in tutto da circa 2.500 righe. Entrambe si sono rivelate bug critici che possono portare all'escalation dei privilegi.

La prima è stata trovata dall'IA Mythos di Anthropic e segnalata come CVE-2026-43074. Quel 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 individuare bug di race. Un ricercatore indipendente ha in seguito inviato un exploit 1-day relativo a quel bug a kernelCTF.

L'altra race è Bad Epoll, quella sfuggita a Mythos. Dato che Mythos ha trovato il primo bug in questo piccolo percorso di codice di epoll, probabilmente ha esaminato la stessa area con una profondità significativa. Non possiamo sapere esattamente perché gli sia sfuggito Bad Epoll, ma due fattori probabilmente ne hanno reso difficile la scoperta.

  • La finestra di race è minuscola. Copre solo circa sei istruzioni, quindi l'esatta interleaving dei thread è difficile da immaginare anche osservando il codice vulnerabile.

  • C'erano poche prove a runtime. Dopo la correzione di CVE-2026-43074, 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 sicurezza per segnalarlo come un bug reale.

Anche correggere Bad Epoll è stato difficile. La prima patch dei manutentori non ha risolto completamente il problema, e una patch corretta è arrivata solo due mesi dopo la prima segnalazione del bug. È un lasso di tempo lungo per un kernel che di solito gestisce i problemi di sicurezza con urgenza.

Nel complesso, Bad Epoll mostra quanto le race condition siano difficili in ogni fase. Sono difficili da trovare persino per un modello di frontiera, difficili da correggere correttamente e, come mostra la sezione successiva, difficili da sfruttare in modo affidabile. Suggerisce inoltre una direzione di ricerca sulle vulnerabilità che vale ancora la pena esplorare in presenza di modelli AI di frontiera: scoprire il reale impatto sulla sicurezza dietro condizioni temporali ristrette e prove deboli.


Come funziona l'attacco

Ecco una panoramica di alto livello dell'attacco, per i curiosi.

ep_waiter osserva ep_target: le strutture epoll alla base del bug

Due oggetti epoll collegati. Chiuderli entrambi contemporaneamente innesca la race.

Due dei percorsi di chiusura di epoll vengono eseguiti contemporaneamente e collidono. Uno libera un oggetto mentre l'altro vi sta ancora scrivendo, e questa è la use-after-free (UAF).

La finestra di race close-vs-close e come l'exploit la pilota tramite un interrupt del timer

La finestra di race e come l'exploit la pilota.

L'exploit usa quattro oggetti epoll raggruppati in due coppie. Una coppia innesca 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.

Lettura arbitraria del kernel: una struct file dangling supportata da una pipe fa trapelare indirizzi del kernel tramite /proc/self/fdinfo

Trasformare il bug in una lettura arbitraria della memoria del kernel tramite /proc/self/fdinfo.

Con quel controllo, l'exploit ottiene una lettura arbitraria della memoria del kernel tramite /proc/self/fdinfo. Infine, dirotta il flusso di controllo ed esegue una catena ROP per ottenere una shell root.

Maggiori dettagli sono disponibili nel writeup completo dell'exploit e nel codice.


Mitigazione

Poiché epoll non può essere disabilitato, Bad Epoll non ha una semplice soluzione alternativa. L'unico rimedio è applicare la patch.

Scarica lo strumento