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
- Ubuntu 20.04 (Focal):
-
Для 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
Временное решение
Если немедленное обновление невозможно, примите следующие меры:
-
Ограничьте сетевой доступ:
- Настройте групповые политики брандмауэра (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
- Настройте групповые политики брандмауэра (firewall) или
-
Используйте WAF (Web Application Firewall):
- Настройте правила в имеющемся WAF (например, ModSecurity на прокси-сервере) для блокировки аномальных или подозрительных SMTP-команд и шаблонов в содержимом пакетов.
-
Рассмотрите временную остановку службы:
- Если SMTP-сервер не критичен для внешней работы, остановите его до момента установки патча:
bash sudo systemctl stop opensmtpd sudo systemctl disable opensmtpd - Внимание: Это полностью отключит прием входящей почты через этот сервер.
- Если SMTP-сервер не критичен для внешней работы, остановите его до момента установки патча:
Важно: Временные решения лишь снижают риск атаки, но не устраняют уязвимость. Обновление — обязательный и первоочередной шаг.