Представлены подробности атаки спуфинга почтовых сообщений SMTP Smuggling

SEC Consult описала новую технику спуфинга, которая стала возможной из-за разных следований спецификациям в различных реализациях протокола SMTP. Она позволяет разделить одно сообщение на несколько при его передаче на другой SMTP-сервер. При такой передаче нарушается последовательность для разделения писем, передаваемых через одно соединение. Это позволяет передавать ложные сообщения от имени других отправителей в почтовых сервисах, которые обеспечивают верификацию адресантов.Атака становится возможной благодаря тому, что разные SMTP-серверы вариативно трактуют последовательность окончания данных. Это позволяет разделить одно письмо на несколько в рамках одного сеанса к SMTP-серверу. Так, в спецификации для маркировки окончания передачи письма определена последовательность "\r\n.\r\n", а после неё могут следовать команды для передачи другого письма без разрыва соединения. Одни SMTP-серверы придерживаются этого правила, а другие ради обеспечения совместимости обрабатывают и такие последовательности, как "\n.\n", "\n.\r\n", "\r\n.\n", "\r.\r" и "\r\n\0.\r\n".В итоге злоумышленники могут использовать эти альтернативные разделители, чтобы размещать за ними команды отправки второго сообщения. Первый сервер обрабатывает полученную последовательность как одно письмо, а второй — как два отдельно отправленных письма, при этом последующее можно отправить от имени неаутентифицированного пользователя.К таким SMTP-серверам и службам относятся Postfix, Sendmail, MS Exchange Online,Exim и Cisco Secure Email Gateway, а GMX, iСloud и Microsoft Outlook не фильтруют разделители при обращении к другим серверам.В Postfix в выпусках 3.8.1, 3.7.6, 3.6.10 и 3.5.20 уже добавили настройку "smtpd_forbid_unauth_pipelining" для разрыва соединения в случае использования разделителей, не соответствующих требованиям RFC 2920 и RFC 5321. По умолчанию она появится в ветке Postfix 3.9, которая выйдет весной 2024 года. Туда же включат настройку smtpd_forbid_bare_newline, которая будет выводить ошибку при использовании только символа перевода строки ("\n") для разделения строк.В следующем выпуске Sendmail 8.18.0.2 в srv_features будет предложена опция 'o', включающая обработку только последовательности "\r\n.\r\n".Хабр