Tempo di Lettura: 2 minuti
Phoenix di Vite Digitali, mi segnala per mail una vulnerabilità che permette attacchi di tipo XSS (cross-site scripting) riscontrata in tutte le versioni del tema Unnamed One (installato anche sul mio sito).
Infatti, analizzando il codice del tema, si vede che nel file theloop.php è presente la seguente riga di codice:
Questo fa si che se si scrive uno script (per esempio in javascript) nella barra delle ricerche, lo script non verrà bloccato ma verrà eseguito; infatti lo script verrà assegnato alla variabile s e quindi visualizzato nel blog mediante la funzione printf. Non essendo presenti dei controlli sul contenuto della variabile, lo script verrà inserito nella pagina html senza essere filtrato e quindi inevitabilmente, verrà eseguito.
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…
L’autore del tema Unnamed One (ma il bug è stato rilevato anche nel tema Blue Memories, realizzato sempre dallo stesso autore) è stato contattato ed ha subito provveduto a correggere il codice nei temi.
Per chi non volesse riscaricare i temi, è possibile modificare la riga sopra indicata del file theloop.php nella seguente:
In effetti, a conferma delle veridicità delle affermazioni di Phoenix ho verificato il codice del tema Unnamed One 1.x presente ora sulla homepage dell’autore con quella che avevo installato io ed effettivamente erano state apportate le modifiche suggerite da Phoenix, che non posso non ringraziare per il lavoro svolto e per la puntuale segnalazione via email.
ma serve fare la stessa modifica anche per il file sidebar.php? qui c’è giù la funzione wp_specialchars($s), è sufficiente?
ciao!
ho fatto proprio adesso un’ ultima prova e funziona tutto bene 😉
@ Davide: il file sidebar.php non necessita modifiche. Non permette infatti l’esecuzione di codice.
@phoenix: Grazie per le verifiche e le conferme 🙂