Le specifiche HTML5 prevedono un metodo per memorizzare dati sul disco rigido dell’utente quando viene visitata una pagina web. Le API Web Storage permettono ai siti di conservare localmente fino a 10 MB di dati, ma un’errata implementazione da parte di Microsoft, Google e Opera consente di superare questo limite e di riempire completamente l’hard disk in pochi secondi. L’exploit è stato realizzato dallo sviluppatore Feross Aboukhadijeh mediante il sito FillDisk.com (non cliccare su questo link).
Web Storage può essere considerato un miglioramento dei cookie. La dimensione massima di questi ultimi è 4 KB, mentre il nuovo standard porta questo limite a 10 MB. La funzionalità è utile, ad esempio, quando l’utente deve compilare un lungo form. Se il browser va in crash prima del completamento del form, i dati già inseriti saranno disponibili al successivo riavvio. Il W3C ha specificato che un sito web non deve abusare di questa feature per scrivere una quantità illimitata di dati sul disco dell’utente.
I limiti sono 5 MB per Firefox, Chrome e Opera, e 10 MB per Internet Explorer. Solo Firefox però implementa la funzionalità in modo corretto. Gli altri tre browser, invece, controllano solo i dati inviati dal dominio principale. Il sito FillDisk.com sfrutta numerosi sottodomini (1.filldisk.com, 2.filldisk.com, 3.filldisk.com e così via) per inviare la massima quantità di dati possibili. I test effettuati dallo sviluppatore hanno evidenziato l’esistenza del bug nelle ultime versioni di Chrome, Opera, Safari e Internet Explorer. Il browser di Google va addirittura in crash prima della saturazione dello spazio sull’hard disk, come si può vedere nel video in fondo all’articolo.
Anche se tecnicamente non si può parlare di hack (l’exploit non permette di eseguire codice remoto o sottrarre dati personali), non è difficile immaginare un aumento di email contenenti link a siti fasulli, attraverso i quali è possibile attuare lo “scherzo”, sopratutto nei confronti degli utilizzatori di Chrome.
[youtube]http://www.youtube.com/watch?v=XkScSMIr_00[/youtube]