CVE-2020-7247

OpenBSD OpenSMTPD

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-03-25

Официальное описание

smtp_mailaddr in smtp_session.c in OpenSMTPD, as used in OpenBSD and other products, allows remote attackers to execute arbitrary commands as root via a crafted SMTP session.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость (CVE-2020-7247) в OpenSMTPD позволяет удаленному злоумышленнику выполнить произвольные команды с правами пользователя root (суперпользователя). Для эксплуатации достаточно отправить специально сформированный запрос в рамках SMTP-сессии на порт, где работает уязвимая служба (обычно TCP/25, 465, 587). Это критическая уязвимость типа "удаленное выполнение кода" (RCE).

Как исправить

Необходимо обновить OpenSMTPD до исправленной версии. Конкретная команда зависит от вашей операционной системы и пакетного менеджера.

  • Для Debian/Ubuntu: bash sudo apt update && sudo apt install opensmtpd Убедитесь, что установлена версия не ниже:

    • Ubuntu 20.04 (Focal): opensmtpd 6.6.1p1-1ubuntu0.1
    • Ubuntu 18.04 (Bionic): opensmtpd 6.0.3p1-5ubuntu0.3
    • Debian 10 (Buster): opensmtpd 6.0.3p1-5+deb10u1
  • Для RHEL/CentOS/Fedora: bash sudo yum update opensmtpd Или bash sudo dnf update opensmtpd Убедитесь, что установлена версия не ниже 6.6.2p1.

  • Для OpenBSD (основная ОС): Уязвимость была устранена в ветках -current и -stable. Примените соответствующие патчи или обновите систему.

  • Сборка из исходных кодов: Скачайте и установите версию OpenSMTPD 6.6.2p1 или новее с официального сайта.

После обновления обязательно перезапустите службу:

sudo systemctl restart opensmtpd
# или для некоторых систем
sudo service opensmtpd restart

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

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

  1. Ограничьте сетевой доступ:

    • Настройте групповые политики брандмауэра (firewall) или iptables/nftables, чтобы разрешить входящие SMTP-соединения (порты 25, 465, 587) только с доверенных IP-адресов (например, из внутренней сети или от определенных почтовых серверов).
    • Пример для iptables (разрешить только от сети 192.168.1.0/24): bash 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
  2. Используйте WAF (Web Application Firewall):

    • Настройте правила в имеющемся WAF (например, ModSecurity на прокси-сервере) для блокировки аномальных или подозрительных SMTP-команд и шаблонов в содержимом пакетов.
  3. Рассмотрите временную остановку службы:

    • Если SMTP-сервер не критичен для внешней работы, остановите его до момента установки патча: bash sudo systemctl stop opensmtpd sudo systemctl disable opensmtpd
    • Внимание: Это полностью отключит прием входящей почты через этот сервер.

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