В Exim закрыта серьёзная уязвимость удалённого выполнения кода без аутентификации

Разработчики Exim сообщили о выпуске исправления для CVE-2026-45185 — уязвимости в почтовом сервере Exim, связанной с обработкой BDAT-сообщений при TLS-соединении через GnuTLS. Исследователи XBOW, обнаружившие проблему, назвали её Dead.Letter и описали как unauthenticated remote code execution.

Ошибка относится к классу use-after-free. Она возникает в момент обработки тела сообщения через BDAT, если клиент во время TLS-соединения отправляет уведомление close_notify до завершения передачи тела, а затем посылает последний байт уже открытым текстом в том же TCP-соединении. В результате Exim может записать данные в уже освобождённый буфер, что приводит к повреждению памяти.

Уязвимость затрагивает Exim начиная с версии 4.97 и до 4.99.2 включительно, но только в сборках, использующих GnuTLS. Сборки с OpenSSL и другими TLS-библиотеками, согласно advisory Exim, не подвержены этой конкретной проблеме. Для атаки злоумышленнику достаточно иметь возможность установить TLS-соединение с сервером и использовать SMTP-расширение CHUNKING/BDAT.

Исправление вошло в Exim 4.99.3. Разработчики указывают, что известного обходного способа, полностью устраняющего риск, нет: затронутым пользователям рекомендуется обновиться. Для администраторов почтовых серверов это особенно важная новость, потому что Exim часто работает на публично доступных SMTP-серверах, а такие системы традиционно находятся в зоне постоянного сканирования.

Источники: Exim Security Advisory, XBOW

Связь с редакцией