CVE-2015-1383: XSS nel plugin wordpress Geo Mashup e code review metropolitane
Sonnecchioso pomeriggio di metà dicembre. Jacopo mi manda un DM su twitter dove mi parla di un sito famoso, già oggetto di critiche e perplessità da un po’ di persone in rete.
Prima che lo chiediate, non ho ricevuto risposta se potevo pubblicare il nome del sito, quindi anche se chiederete non avrete risposta.
Storie di code review in metropolitana
Torniamo alla nostra storia. Jacopo mi dice che su una form di ricerca del sito
c’è un cross site scripting, di quelli proprio base dove basta
<script>alert('xss')</script>
come vettore d’attacco.
Jacopo dice di averli avvisati giù da un paio di giorni attraverso la form di contatto, senza ottenere una risposta. Apro una chat ad un mio contatto che collabora con loro e gli racconto la storia. Tempo 5 minuti e sono in chat con lo sviluppatore del portale, Vincenzo, con il quale ci diamo appuntamento a dopo.
La sessione di code review è molto agile, è bello lavorare con persone smart che hanno chiaro il problema, sanno fare il loro lavoro e che non pensano tu sia solo l’ennesima scocciatura. Individuiamo subito il colpevole, il plugin wordpress Geo Mashup. Un po’ più complesso fare un po’ di reverse del flusso dei dati da quando l’utente ha messo l’input a quando viene riflesso sulla pagina di ricerca.
Mi invia il file e lo apro con il mio Nexus e parte un botta e risposta di una
decina di minuti fino a quando non troviamo il punto giusto dove chiamare
esc_html
.
Ripete il test ed il cross site scripting sparisce.
Saluti finali, sipario. Tempo per fixare la vulnerabilità: meno di 3 ore, anche se il tempo di lavoro vero a quattro mani è stato di 20 minuti.
Being responsible
La mail allo sviluppatore, Dylan, parte subito. C’è però qualche contrattempo, per un paio di settimane non ho alcuna risposta. Vedo che anche su twitter è assente da metà dicembre, decido di insistere sotto traccia.
Finalmente l’8 Gennaio riesco ad avere una risposta e l’11 Gennaio esce la fix con la versione 1.8.3 del plugin.
A questa issue è stato assegnato l’identificativo: CVE-2015-1383.
Io ho quel plugin, cosa devo fare?
Aggiornare un plugin wordpress, se non è stato modificato da un incauto sviluppatore localmente, è abbastanza semplice. Dal backend di wordpress, sarà segnalata una versione aggiornata del plugin e la possibilità di effettuare l’update.
Saluti finali, sipario
Vuoi aiutarmi a portare avanti il progetto Codice Insicuro con una donazione? Fantastico, allora non ti basta che premere il pulsante qui sotto.
Supporta il progetto