Postfix выпустил патчи для пяти уязвимостей, две из которых связаны с DANE-аутентификацией

Postfix

Разработчики почтового сервера Postfix опубликовали обновлённые версии веток 3.8, 3.9, 3.10 и 3.11, а также дополнительные патчи для неподдерживаемых релизов 2.9-3.7. В общей сложности исправлено пять проблем, снижающих надёжность работы MTA (агента пересылки почты). Две из них потенциально могли приводить к аварийному завершению SMTP-клиента при обработке специально сформированных TLSA-записей DNS.

Детали уязвимостей

Первая уязвимость затрагивает функцию smtp_dns_reply_filter, которая по умолчанию отключена. Ошибка возникла из-за отсутствия оператора break после преобразования TLSA-записи в строку. Это приводило к чтению нулевого указателя при нулевой длине записи или к переполнению буфера при длине от 1 до 19 байт. Для эксплуатации требовалась настройка Postfix на оппортунистическую или обязательную DANE-аутентификацию, а также использование резолвера, передающего клиенту короткие TLSA-записи. Например, BIND, Google DNS и systemd-resolved блокируют такие записи, а Cloudflare, Quad9 и unbound - пропускают в определённых конфигурациях.

Вторая проблема выявлена в коде парсинга TLSA-ответов, начиная с версии Postfix 3.6. Неправильное условие "length < 3" вместо "length <= 3" вызывало утверждение (assertion failure) и аварийный останов SMTP-клиента при получении TLSA-записи длиной ровно три байта. Эта атака не требует включения smtp_dns_reply_filter и распространяется через большее число резолверов. В обоих случаях аварийная остановка клиента приводила к задержкам доставки почты на другие домены, однако в системах с высокой нагрузкой Postfix автоматически перезапускает процесс в течение нескольких секунд, так что практический эффект ограничен.

Три оставшиеся уязвимости относятся к категории повышения надёжности. Первая из них, существовавшая с Postfix 2.9, позволяла SMTP-серверу неограниченно долго принимать длинные строки команд. Вторая аналогичным образом затрагивала SMTP-клиент при получении длинных строк ответа. Третья, добавленная в версии 3.4, касалась неограниченного приёма данных через команду BDAT. Разработчики отмечают, что исправления не устраняют саму возможность перегрузить сервер потоком данных в рамках одной сессии - злоумышленник может отправлять сообщения чуть меньше лимита и обрывать соединение перед концом, либо передавать команды RSET вместо BDAT LAST. Для защиты от подобных атак рекомендуется ограничивать частоту транзакций со стороны одного IP-адреса (параметр smtpd_client_message_rate_limit) и использовать postscreen совместно с DNSBL.

Обновлённые версии - Postfix 3.11.4, 3.10.11, 3.9.12 и 3.8.18 - доступны на официальном зеркале исходного кода. Для неподдерживаемых выпусков 2.9-3.7 также выпущены отдельные патчи, подписанные теми же ключами PGP, что и основные тарболы. Администраторам почтовых серверов рекомендуется как можно скорее установить исправления, особенно если в конфигурации используется DANE или оппортунистическое шифрование. Временные меры защиты включают отключение DANE-аутентификации в Postfix до применения патча.

Уязвимости были обнаружены исследователями безопасности и в ходе внутреннего аудита кода. Производитель оценивает общий уровень риска как низкий, однако подчёркивает необходимость устранения любых потенциальных точек отказа в почтовой инфраструктуре. В последнее время проекты, связанные с обработкой электронной почты, всё чаще становятся объектами целенаправленных атак, и своевременное обновление остаётся ключевым элементом защиты.

Ссылки

Комментарии: 0