Независимый исследователь из Германии Сабри Аддуш (Sabri Haddouche) обнаружил целый ряд уязвимостей, которые получили совместное название MailSploit. Данные баги позволяют атаковать множество почтовых клиентов, осуществлять спуфинг, а в некоторых случаях даже выполнять на уязвимой машине произвольный код.
Специалист отмечает, что хотя RCE-потенциал, которым наделен MailSploit, вызывает тревогу, на практике куда большую опасность для конечных пользователей может представлять спуфинг, который позволяет обойти практически все современные защитные механизмы, включая DMARC (DKIM/SPF), и почтовые фильтры.
В сердце MailSploit лежит проблема, связанная с тем, как почтовые серверы интерпретируют email-адреса, закодированные с помощью RFC-1342. Данный стандарт был принят еще в 1992 году, он позволяет использовать отличные от ASCII символы в хедерах. Дело в том, что по правилам содержимое хедера должно состоять только из символов ASCII. В итоге авторы почтовых стандартов используют RFC-1342 для автоматической конвертации не-ASCII символов в стандартный формат ASCII, чтобы избежать возникновения ошибок, когда письмо, тема или адрес которого содержат не-ASCII символы, проходит через сервер.
Аддуш обнаружил, что большинство почтовых клиентов перекодируют RFC-1342 в привычный формат, но после не проверяют полученный результат на предмет вредоносности. Более того, если строка RFC-1342 содержит нулевой байт (null-byte) и более одного email-адреса, почтовый клиент распознает лишь адреса до нулевого байта, а все остальное останется «невидимым». Фактически, используя RFC-1342, атакующий может скрыть настоящий адрес письма, создав подделку, которую будет очень тяжело обнаружить. К примеру,
превратится в почтовом клиенте в:
При этом красным цветом выделен настоящий домен, которого почтовый клиент «не видит». Клиент распознает только первый адрес, potus@whitehouse.gov, тогда как @mailsploit.com, располагается уже после нулевого байта (\0). Хуже того, Аддуш пишет, что таким же образом в поле «From:» можно спрятать вредоносный код, который в ряде случаев будет выполнен после расшифровки почтовым клиентом.
Исследователь пишет, что тестировал MailSploit против многих почтовых клиентов, и полный список с полученными результатами можно найти здесь. Как оказалось, перед проблемой уязвимы 33 почтовых клиента, включая Apple Mail (macOS, iOSи watchOS), Mozilla Thunderbird, ряд клиентов Microsoft, Yahoo Mail, ProtonMail и так далее. При этом лишь 8 из 33 в настоящее время выпустили патчи, еще 12 производителей вообще никак не отреагировали на сообщения специалиста, а представители Mozilla и Opera сообщили, что не планируют ничего исправлять, так как это проблема на стороне сервера.
Видеоролик ниже демонстрирует атаку MailSploit против почтового клиента iOS.