Grave (e un po’ sciocco) bug su Android

Android è il sistema operativo interamente opensource sponsorizzato da Google. Il primo terminale commercializzato basato su Android è il T-Mobile G1 che viene venduto dal 22 ottobre negli Stati Uniti.

Da subito sono stati fatti i primi tentativi per effettuare il cosiddetto jailbreaking, cioè lo sblocco del telefono al fine di poterlo usare con qualsiasi operatore. La semplicità con cui è stato possibile condurre tale operazione era dovuta proprio al grave bug che affligge la versione 1.0 T4-RC29 e le precedenti.

All’accensione del telefono (al boot, ad essere precisi), viene lanciata una shell che cattura ed esegue come comandi ogni serie di caratteri inserita, a prescindere dal contenuto del display. Basta digitare qualcosa che abbia senso su un sistema Unix perché questo venga eseguito… con i privilegi di root!

Il blogger Ed Burnette di ZDNet lo definisce il peggior bug di sempre. In effetti i tentativi che sono stati fatti, come far riavviare il telefono semplicemente digitando il comando reboot, dimostrano la gravità del problema.

Alcune soluzioni sono state suggerite per risolvere il problema. La più ovvia, digitare il comando exit, non funziona poiché il processo viene rilanciato dopo poco. Un’altra consiste nell’eseguire il comando cat senza parametri, che di fatto impedisce la cattura di successivi comandi.

Data l’apertura della piattaforma, è già stata individuata la sorgente del problema. Si tratta di uno script eseguito al momento del boot, /init.rc, che a sua volta lancia una shell legata alla console. I più smanettoni potranno lanciare il server telnetd sfruttando il bug stesso e con un client telnet collegarsi al proprio telefono e cancellare quelle righe dallo script incriminato.

Almeno fino a quando non verrà rilasciato un update del firmware.


FacebookGoogle+TwitterLinkedInFriendFeedTumblrShare/Bookmark

So, what do you think ?