Vulnerabilità XSS nel tema Blix di Wordpress

Questa storia ha qualcosa di incredibile...
Qualche giorno fa per puro caso ho scoperto che il tema Blix di Wordpress presenta una vulnerabilità di tipo XSS (cross-site scripting) che può essere sfruttata tramite la barra delle ricerche presente nella parte superiore del tema. Se, infatti, inseriamo uno script (per esempio scritto in javascript) nella barra delle ricerche, tale script verrà eseguito nella macchina utente senza essere filtrato. Tale vulnerabilità permette di eseguire qualsiasi codice immesso nella barra delle ricerche e, quindi, permette svariate tipologie di attacco: phishing, cookie grabbing (rubare i cookie dalla macchina che accede al blog con tema Blix), visualizzazione di contenuti testuali e multimediali temporanei nella pagina del blog, ridirezionamento verso un' altra pagina, ecc...
Dopo aver osservato che praticamente tutti i blog con indirizzo http://xxx.wordpress.com che utilizzavano il tema Blix erano buggati, ho avvisato lo staff di Wordpress e dopo qualche giorno di verifica sapete cosa hanno detto? "The theme we use is fine, no cause for concern." Il tema che noi usiamo è OK, non c'è motivo di preoccuparsi. Dopo aver letto questa loro risposta, ho visitato gli stessi blog che qualche giorno prima avevano il bug... ma ora il bug era improvvisamente scomparso! Personalmente credo che lo staff di Wordpress abbia modificato il codice del tema Blix presente sui loro server, senza creare scalpore e senza ammettere che non avevano controllato a dovere il codice prima di renderlo disponibile ai loro utenti. Ricordiamoci che Wordpress ha delle regole molte rigide riguardo l'esecuzione di codice nei blog e sicuramente avere un tema buggato che permetteva l'esecuzione di qualsiasi codice sui computer degli utenti non li ha resi molto felici...

Il tema Blix originale è buggato ed ho le prove (registrazioni video) che ci sono blog non hostati sui server di Wordpress che sono vulnerabili a tale attacco!

Tecnicamente la vulnerabilità è dovuta alla seguente riga di codice presente nel file search.php del tema Blix (scaricabile qui):



Come si può vedere, il comando echo $s non fa altro che visualizzare il contenuto della variabile s che è la stringa che noi vogliamo cercare. Se nella variabile s è presente uno script, il codice dello script verrà inserito nella pagina html senza essere filtrato e ciò porta alla inevitabile esecuzione dello script.
Per correggere la vulnerabilità si possono seguire 3 strade:
1) eliminare tale riga di codice
2) sostituire tale riga di codice con un altra che non contenga il comando echo $s
3) lasciare tale riga, imponendo però dei controlli sul contenuto della variabile s

Tale articolo è stato scritto con l' unico scopo di avvisare chiunque utilizzasse il tema originale Blix della presenza di una vulnerabilità nel codice del tema. Se il vostro blog è hostato sui server Wordpress è ormai al sicuro dal bug, se invece siete hostati su server esterni ed avete scaricato il tema Blix dal sito del creatore, potete essere vulnerabili. Chiunque faccia stupidate utilizzando le informazioni contenute in questo articolo, sarà l' unico responsabile per i danni che potrà arrecare.

Ho già inviato un messaggio a Sebatian Schmieg, creatore del tema, per informarlo del bug ed ho aperto anche una discussione sul forum ufficiale di Wordpress dove mi è stato risposto che il tema che usano è fine.
Sincermente, dopo questa faccenda (che non è ancora chiusa) mi sento ancor più fiero di aver scelto la piattaforma Blogger che oggi reputo senza dubbio più seria e sicura...

5 commenti:

    On 16 luglio 2007 alle ore 09:07 Anonimo ha detto...

    Cavolo! che "interessante" scoperta che hai fatto. ora capisco perchè mi facevi quelle domande (a proposito non ho potuto risponderti prima, ma solo 5 minuti fa). Direi che il bug è molto grave: mostrare l'input dell'utente inserite in una form è una di quelle cose che non bisognerebbe MAI fare! ma la cosa ancor più strana è la reazione dello staff di WP.

    On 16 luglio 2007 alle ore 09:24 Anonimo ha detto...

    Beh, te hai finito il tuo lavoro, visto che l'avviso l'hai dato. Adesso dipende da loro.

    ci sono ancora!! è solo che non mi va il blog.. che brava in..forma..tichina!!

    ehmm.. forse avevo abusato in script.. spero di aver risolto.. ma da te fa così caldo? io boccheggio..

    Bel bug detection, man :) Veramente bella :)