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, в зависимости от системы

Временное решение

Если немедленное обновление невозможно, примените следующие меры:

  1. Отключите поддержку команды RUN в конфигурации Exim. Найдите и закомментируйте (добавьте # в начало строки) или удалите следующие строки в конфигурационном файле Exim (обычно /etc/exim4/exim4.conf или /etc/exim/exim.conf): accept authenticated = * accept condition = ${if eq{$sender_host_address}{}} Это отключит рискованные правила, связанные с локальной доставкой. После изменения конфигурации перезапустите Exim.

  2. Ограничьте доступ к 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

  3. Используйте WAF (Web Application Firewall). Настройте правила в имеющемся WAF (например, ModSecurity) для фильтрации и блокировки SMTP-трафика, содержащего подозрительные шаблоны в командах RCPT TO (например, строки, содержащие $run, обратные кавычки или символы переноса строки \n).

Внимание: Временные решения лишь снижают риск и могут повлиять на функциональность. Обновление — единственный надежный способ устранения уязвимости.