Веб-почта десятилетиями пытается безопасно показывать чужой HTML, но граница между письмом и интерфейсом сервиса оказалась тоньше, чем рассчитывали разработчики. Специалист PortSwigger Гарет Хейс показал в серии тестовых атак, что разрешённые HTML и CSS можно использовать для перехвата действий, утечки токенов и даже кражи паролей в популярных почтовых сервисах.
Проблема возникает, когда фильтр почтового сервиса и браузер по-разному разбирают стили. Код, который фильтр считает безопасным, после обработки браузером может превратиться в другой набор правил и выйти за пределы письма. В Fastmail Хейс добился такой «мутации» CSS через CSSOM, а в Outlook обошёл фильтр с помощью особенностей разбора медиазапросов и комментариев.
Самая опасная демонстрация затронула Outlook. Вредоносное письмо могло занять весь экран и подменить интерфейс страницей входа. Затем CSS превращал элемент выбора в поле пароля и фиксировал нажатия клавиш. В Firefox дополнительный трюк со смещением элемента позволил убрать задержку между символами и превратить схему в клавиатурный перехватчик, работающий в реальном времени.
Другие тесты показали, что CSS способен влиять и на действия пользователя внутри почтового сервиса. В Fastmail техника CSS Hotwiring перекрывала страницу невидимым элементом и перенаправляла обычный клик на другую команду интерфейса. Две найденные в Fastmail ошибки с «мутацией» CSS команда сервиса исправила, выплатив за каждую находку по 1000 долларов.
Отдельный сценарий связал письмо с ИИ-браузером Atlas. Хейс спрятал в сообщении инструкции, которые не видел пользователь, но считывала языковая модель. После команды на перевод Atlas в тесте начинал открывать вкладки и передавал имя со страницы на удалённый сервер. Такая атака была лабораторной демонстрацией косвенной инъекции инструкций, а не описанием реального взлома.
PortSwigger рекомендует изолировать содержимое писем в sandboxed iframe, запрещать опасные CSS-селекторы и элементы select, блокировать внешние запросы изображений и data: URL, а также проверять интерфейс на CSS-гаджеты. В отчёте также указано, что обход отслеживания в Gmail и управление элементами Outlook через HTML label сохранялись на момент публикации.