Falla scoperta dal ricercatore Sabri Haddouche che consente di mostrare nel campo mittente del client di posta un indirizzo mail diverso da quello reale e che può essere utilizzata per iniettare codice da remoto. Ecco come funziona e quali sono i client affetti da tale bug.
Falsificare l’indirizzo del mittente sembra essere meno complicato di quello che si crede. Un ricercatore specializzato in bug hunting e penetration test ha scoperto e divulgato la lista di trenta client e servizi web mail che permettono l’invio di messaggi con mittente camuffato:
Il bug utilizza lo standard per la gestione del campo mittente (i.e. campo “da”) e fa leva sul sistema di trasformazione dei caratteri non-ASCII.
E possibile creare indirizzi mail con caratteri speciali che vengono interpretati in maniera errata dai client e-mail.
Volendo fare un esempio ipotizziamo che un malintenzionato voglia inviare una e-mail fingendosi Will Smith. Quello che deve fare è semplicemente utilizzare un indirizzo tipo:
=?utf-8?b?${base64_encode(‘will.smith@dominio.com’)}?==?utf-8?Q?=00?==?utf-8?b?${base64_encode(‘(will.smith@dominio.com’)’)}?=@altrodominio.com
Il tutto diventa quindi:
=?utf-8?b?d2lsbC5zbWl0aEBkb21pbmlvLmNvbQ==?==?utf-8?Q?=00?==?utf-8?b? d2lsbC5zbWl0aEBkb21pbmlvLmNvbQ==?=@ altrodominio.com
Il client leggerà quindi:
will.smith@dominio.com\0(will.smith@dominio.com)@altrodominio.com
Visto che l’applicazione ignora tutto ciò che segue il null-byte, nel campo mittente comparirà solo:
will.smith@dominio.com
Purtroppo la stessa tecnica consente l’esecuzione di attacchi di tipo Cross Site Scripting (i.e. XXS) e Code Injection. In altre parole il codice malevolo viene incorporato nella e-mail stessa.
Soluzioni? La maggior parte degli sviluppatori dei vari client sono all’opera per risolvere la falla. Aggiornare appena possibile il proprio client e, nel frattempo, occhi aperti.