Exim: критическая уязвимость в почтовом сервере позволяет удалённое выполнение кода
Что случилось
В почтовом сервере Exim обнаружена критическая уязвимость (CVE-2026-45185), позволяющая неаутентифицированному злоумышленнику выполнить произвольный код на сервере. Проблема связана с некорректной обработкой памяти при парсинге команды BDAT — механизма передачи сообщений по частям (CHUNKING).
Атака становится возможной при определённой конфигурации GnuTLS: если клиент разрывает TLS-сессию отправкой close_notify посреди передачи тела письма, а затем передаёт один байт открытым текстом по тому же TCP-соединению, происходит повреждение кучи (heap corruption). Это открывает путь к удалённому выполнению кода.
Кого касается
Уязвимость актуальна для:
- Серверов с Exim версии ниже 4.99.3
- Конфигураций, где Exim собран с поддержкой GnuTLS (не OpenSSL)
- Систем с включённым расширением CHUNKING (по умолчанию активно в современных сборках)
Если вы используете Exim на VPS для приёма почты — проверьте версию и способ сборки. Уязвимость эксплуатируется по сети без необходимости авторизации.
Что делать
1. Обновите пакет
Debian/Ubuntu:
apt update && apt upgrade exim4
RHEL/CentOS/Alma/Rocky:
dnf update exim
Alpine:
apk upgrade exim
2. Проверьте версию после обновления
exim --version | head -1
Убедитесь, что версия 4.99.3 или выше.
3. Временная защита, если обновление невозможно
Если обновление отложено, отключите CHUNKING в конфигурации Exim, добавив в начало конфигурации:
chunking_advertise_hosts =
После изменения перезапустите Exim:
systemctl restart exim4
На RHEL/CentOS/Alma/Rocky сервис может называться exim вместо exim4:
systemctl restart exim
Либо перекомпилируйте Exim с OpenSSL вместо GnuTLS — уязвимость не проявляется при использовании OpenSSL.
Учитывая возможность удалённого выполнения кода, рекомендуется обновиться в течение 24 часов.