Mozilla Firefox “Content-Type confusion” – Unsafe code execution

È stata identificata una vulnerabilità nel modo in cui Mozilla Firefox gestisce l’apertura dei file su Windows. A differenza degli altri browser di maggior utilizzo (Google Chrome, Internet Explorer, Edge) Mozilla Firefox basa la scelta sull’operazione da effettuare su di un file in base all’attributo “Content-Type”.

Consideriamo lo scenario in cui un server risponda al client in questa maniera:

Ciò che ci si aspetterebbe è che Mozilla Firefox gestisse il file come un’immagine (.jpg) ma in realtà così non è e, come si può osservare dall’immagine seguente, viene trattato come un file mp3:

Di per sé ciò non costituisce un problema (anche se noi non ne condividiamo la scelta), tuttavia abbiamo riscontrato che in un particolare caso Firefox commette un errore nella gestione dell’attributo “Content-Type” che porta all’esecuzione arbitraria di codice.
Nello specifico, se un server risponde con un “Content-Type” di tipo “text/html” ed un nome file che abbia estensione “.jpg”, Mozilla Firefox mostrerà all’utente finale una maschera in cui si chiede di aprire il file jpg con il programma di default (solitamente un browser) ma scaricherà suddetto file nella cartella temporanea di sistema con estensione “.html”. È semplice capire che è possibile creare un’immagine fake, contenente codice javascript, che porterà all’esecuzione del codice stesso.

Come proof of concept abbiamo utilizzato uno script in python che simula un web-server:

un’immagine (test.jpg) contenente il seguente codice:

ed eseguito lo script python in questa maniera: python server.py test.jpg

Utilizzando Mozilla Firefox per navigare all’indirizzo http://localhost:8000 noteremo che:
#1 – Request:

#2 – Response:

3 – Mozilla Firefox finestra “Apri con”:

4 – Esecuzione del codice JavaScript:

Lo step successivo è stato quello di testare Tor Browser per verificare se fosse vulnerabile allo stesso tipo di confusione e, ovviamente, così è stato. Questo ci ha portato a scoprire (e segnalare immediatamente) una nuova tecnica per de-anonimizzare l’indirizzo ip di un utente, semplicemente modificando il codice javascript contenuto nel fake jpg file, così come è possibile osservare dalla seguente immagine:

Abbiamo riportato la vulnerabilità a Mozilla ma, ad oggi, stanno ancora lavorando per fixarla.
Pubblichiamo le info in quanto è stato superato il periodo di 90 giorni dalla data di segnalazione.

0 thoughts on “Mozilla Firefox “Content-Type confusion” – Unsafe code execution

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Website Protected by Spam Master