От кого: кто угодно@icloud.com — подделка любых отправителей в iCloud
Тимо Лонгин из SEC Consult Vulnerability Lab, известный исследованием SMTP smuggling, описал две экзотические уязвимости подделки писем в почтовых сервисах Apple iCloud. Обе позволяют отправлять сообщения от имени произвольного адреса @icloud.com.
От smuggling к «контрабанде» заголовков
Классический SMTP smuggling, прогремевший в конце 2023 года, эксплуатировал расхождения в том, как разные серверы понимают конец блока данных письма. К 2024 году крупные реализации (Postfix, Sendmail, Exim и другие) выпустили исправления. Попытки найти новые способы «вырваться» из тела письма и подсунуть команды SMTP, по признанию автора, не дали результата — ни один из сотен тестов не сработал.
Тогда исследователь зашёл с другой стороны. Получателю важен не адрес из команды MAIL FROM, а адрес в заголовке From внутри письма. Apple не позволяет указать чужой адрес в этом заголовке напрямую — приходит ошибка «From address is not one of your addresses». Но проверку можно обойти, если заставить два внутренних обработчика iCloud по-разному разобрать одно и то же письмо.
Два разных парсера
Письмо, отправленное на smtp.mail.me.com, проходит через два этапа. Первый проверяет заголовок From по адресу авторизованного пользователя, второй (судя по признакам — на базе Postfix) формирует итоговое сообщение и подписывает его DKIM.
Первый приём использует одиночные символы возврата каретки. Из-за них первый обработчик видит «правильный» заголовок с адресом пользователя и пропускает письмо, а второй — заменяет символы и выталкивает легитимный заголовок в тело, оставляя наружу поддельный admin@icloud.com. Поскольку DKIM-подпись ставится уже после всех преобразований, письмо успешно проходит SPF, DKIM и, как следствие, DMARC.
Когда Apple ужесточила разбор заголовков, Лонгин нашёл второй путь — через правила «dot-stuffing» (добавление и удаление точек в начале строк). Первый обработчик их не соблюдает, что снова разводит интерпретации двух парсеров. В доказательство исследователь отправил письмо от имени бывшего гендиректора Apple — tim.cook@icloud.com.
Полтора года переписки и 15 000 долларов
Раскрытие заняло около полутора лет. Apple не отнеслась к находке легкомысленно: по программе Apple Security Bounty выплачено 15 000 долларов. Автор отмечает, что это может стать прецедентом — спуфинг-уязвимости обычно считают недостаточно опасными и выводят за рамки bug bounty, хотя именно подделка отправителя лежит в основе фишинга.
Вывод неутешителен: разбор древнего и сложного протокола SMTP остаётся источником ошибок, а подлинность отправителя письма куда менее надёжна, чем полагает большинство пользователей.
Источник: Lobsters
Комментарии
Войдите, чтобы комментировать.