CVE-2019-10149
Exim Mail Transfer Agent (MTA)
2022-01-10
Improper validation of recipient address in deliver_message() function in /src/deliver.c may lead to remote command execution.
Технический анализ и план устранения
Суть уязвимости
Уязвимость (Return of the WIZard, RCE) в демоне Exim версий 4.87–4.91. Атакующий может отправить специально сформированное письмо, содержащее команды в поле адреса получателя (RCPT TO). При обработке такого письма демон Exim, работающий от имени root, некорректно проверяет входящие данные, что приводит к выполнению произвольных команд с максимальными привилегиями.
Как исправить
Обновите Exim до исправленной версии. Конкретная команда зависит от вашего дистрибутива Linux.
-
Для Debian/Ubuntu:
bash # Для Ubuntu 18.04 LTS (bionic) и Debian 10 (buster) sudo apt update && sudo apt install --only-upgrade exim4- Безопасные версии:
4.91-8+deb10u5(Debian 10),4.92-8+ubuntu18.04.1(Ubuntu 18.04) и выше.
- Безопасные версии:
-
Для RHEL/CentOS 7:
bash sudo yum update exim- Безопасные версии:
4.87-6.el7_7.1или выше из репозиторияrhel-7-server-rpms.
- Безопасные версии:
-
Для других дистрибутивов: Используйте штатный менеджер пакетов (
zypper,pacmanи т.д.) для обновления пакетаeximдо последней стабильной версии (не ниже 4.92).
После обновления обязательно перезапустите демон:
sudo systemctl restart exim4 # или exim, postfix, в зависимости от системы
Временное решение
Если немедленное обновление невозможно, примените следующие меры:
-
Отключите поддержку команды
RUNв конфигурации Exim. Найдите и закомментируйте (добавьте#в начало строки) или удалите следующие строки в конфигурационном файле Exim (обычно/etc/exim4/exim4.confили/etc/exim/exim.conf):accept authenticated = * accept condition = ${if eq{$sender_host_address}{}}Это отключит рискованные правила, связанные с локальной доставкой. После изменения конфигурации перезапустите Exim. -
Ограничьте доступ к SMTP-порту (25/tcp, 587/tcp). Настройте сетевой экран (например,
iptablesилиfirewalld), чтобы разрешать подключения к Exim только с доверенных сетей (например, внутренней корпоративной сети).bash # Пример для iptables (разрешить только из сети 192.168.1.0/24) sudo iptables -A INPUT -p tcp --dport 25 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 25 -j DROP -
Используйте WAF (Web Application Firewall). Настройте правила в имеющемся WAF (например, ModSecurity) для фильтрации и блокировки SMTP-трафика, содержащего подозрительные шаблоны в командах
RCPT TO(например, строки, содержащие$run, обратные кавычки или символы переноса строки\n).
Внимание: Временные решения лишь снижают риск и могут повлиять на функциональность. Обновление — единственный надежный способ устранения уязвимости.