Basta un eseguibile, compilato con gcc da un utente locale, per ottenere privilegi di root su un sistema con kernel Linux <= 2.6.37. È stato il ricercatore di sicurezza Dan Rosenberg a portare alla luce il grave bug e a postare un exploit funzionante sulla Full disclosure mailing list.
Abbiamo verificato il funzionamento dell´eseguibile sia su una Ubuntu 11.04 Alpha 1 equipaggiata con kernel Linux 2.6.37-7, sia su Ubuntu 10.10 con Linux 2.6.35-22. Dopo aver copiato il codice in un file .c, lo abbiamo compilato con gcc e abbiamo lanciato l´eseguibile prodotto con un utente non privilegiato. Il risultato? In pochi secondi siamo riusciti a ottenere una shell di root contrassegnata dall´inconfondibile "#".
Al momento non esistono soluzioni che mitighino l´exploit e dunque l´unica soluzione potrà arrivare da una patch che vada a correggere la vulnerabilità almeno sui kernel più recenti.
Trattandosi di un exploit che permette di elevare i privilegi di un utente locale non c´è pericolo di attacchi da remoto ma la possibilità di ottenere una shell di root sicuramente non mancherà di creare problemi a più di un sysadmin che utilizzi il pinguino.
Aggiornamento 10 dicembre ore 12:04: Per i più increduli tra i lettori che mettono in dubbio la validità dell´exploit ho realizzato uno screencast che mostra come l´exploit funzioni su Ubuntu 10.10 aggiornata con le ultime patch scaricate dai repository:
[youtube iLVSaDsXVvM]