Bad Epoll: vulnerabilità trovata in Linux e Android per ottenere accesso root


1

Una vulnerabilità è stata scoperta nel kernel Linux Bad Epoll, registrata come CVE-2026-46242. Consente a un normale utente locale senza diritti speciali di elevare i privilegi a root. Secondo l'autore della ricerca, Jaeon Chong, il problema interessa non solo i desktop e i server Linux, ma anche alcuni dispositivi Android su nuove versioni del kernel — questo viene sottolineato separatamente nella descrizione di Bad Epoll.

L'errore si trova nel sottosistema epoll — il meccanismo standard di Linux per monitorare molteplici descrittori di file, connessioni di rete ed eventi di input/output. Questi meccanismi sono utilizzati attivamente da server, browser e servizi di rete, quindi non è possibile disattivare semplicemente epoll. Nella analisi tecnica la vulnerabilità è descritta come una race condition che porta a use-after-free: quando si chiudono simultaneamente oggetti epoll correlati, un thread libera le strutture interne, mentre un altro continua a riferirsi ad esse.

Per essere più precisi, il problema si manifesta in situazioni in cui un descrittore epoll monitora un altro, e entrambi i descrittori vengono chiusi in parallelo. Dopo la chiamata a __ep_remove(), il campo file->f_ep viene temporaneamente azzerato, e il __fput() in competizione può decidere che una pulizia aggiuntiva non è più necessaria. Di conseguenza, l'oggetto struct eventpoll o l'oggetto struct file ad esso associato viene liberato troppo presto, ma il codice continua a operare con puntatori su memoria già liberata. Questo fornisce all'attaccante un primitive per danneggiare la memoria del kernel.

Per l'attacco non sono necessarie capabilities aggiuntive né user namespaces — è sufficiente avere CONFIG_EPOLL, il che rende il problema particolarmente sgradevole per i normali sistemi Linux. Secondo il rapporto preliminare del ricercatore, il bug è stato introdotto nel kernel con il commit 58c9b016e128 nel 2023, ed è stato corretto con il commit a6dc643c693.

Nonostante una finestra di competizione molto ristretta, il ricercatore ha preparato un exploit funzionante per Google kernelCTF. Nella descrizione dell'exploit viene mostrato come l'errore si trasformi in un record di 8 byte nella struttura liberata, quindi in una perdita di memoria del kernel tramite /proc/self/fdinfo, il recupero di file->f_op->poll e una catena ROP per ottenere i privilegi di root. Per l'obiettivo lts-6.12.67 è stata dichiarata una affidabilità di circa il 99%, per COS — circa il 98%; l'exploit per Android, secondo l'autore, è ancora in fase di sviluppo.

Sono a rischio i kernel basati sulla branch 6.4 e versioni successive, se non è stata applicata la patch. I vecchi dispositivi Android con kernel 6.1, inclusi Pixel 8 e modelli simili, l'autore li considera immuni. Gli utenti e gli amministratori hanno a disposizione un'unica opzione valida per la protezione: installare l'aggiornamento del kernel fornito dal proprio distributore o dal produttore del dispositivo.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster