CVE-2019-15107

Webmin Webmin

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

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

2022-03-25

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

An issue was discovered in Webmin. The parameter old in password_change.cgi contains a command injection vulnerability.

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

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

Уязвимость (CVE-2019-15107) — это уязвимость типа "внедрение команд" в скрипте password_change.cgi Webmin. Атакующий может выполнить произвольные команды на уровне операционной системы с привилегиями Webmin (обычно root), отправив специально сформированный запрос к параметру old.

Как это используют: * Атакующий отправляет HTTP-запрос (POST или GET) к /password_change.cgi. * В параметр old вместо старого пароля подставляется команда для выполнения (например, | id). * Если Webmin работает с правами root (стандартно), команда выполняется с этими правами.

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

Основное решение — обновить Webmin до исправленной версии.

Для всех систем (рекомендуемый метод): 1. Войдите в Webmin как администратор. 2. Перейдите в раздел Webmin -> Webmin Configuration -> Upgrade Webmin. 3. Выберите опцию "Upgrade from released module" и нажмите "Upgrade Webmin". Система автоматически загрузит и установит последнюю стабильную версию.

Вручную через командную строку (если веб-интерфейс недоступен):

# Для систем на базе DEB (Debian, Ubuntu)
wget https://prdownloads.sourceforge.net/webadmin/webmin_2.000_all.deb
sudo dpkg -i webmin_2.000_all.deb

# Для систем на базе RPM (CentOS, RHEL, Fedora)
wget https://prdownloads.sourceforge.net/webadmin/webmin-2.000-1.noarch.rpm
sudo rpm -U webmin-2.000-1.noarch.rpm

Критически важные версии: Уязвимость устранена в версиях Webmin 1.930 и выше. Убедитесь, что ваша версия не ниже этой.

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

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

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

    • Настройте брандмауэр, чтобы разрешить подключение к порту Webmin (обычно 10000/TCP) только с доверенных IP-адресов. ```bash

    Пример для firewalld (только для доверенной сети 192.168.1.0/24)

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="10000" protocol="tcp" accept' sudo firewall-cmd --reload ```

  2. Используйте Reverse Proxy с WAF:

    • Разместите Webmin за обратным прокси (например, Nginx или Apache) с включенным модулем Web Application Firewall (WAF), таким как ModSecurity. Настройте правила для блокировки запросов, содержащих в параметрах символы pipe (|), точку с запятой (;) или backtick (`).
  3. Отключите скрипт (радикальная мера):

    • Переименуйте или удалите уязвимый CGI-скрипт. Это сломает функционал смены пароля. bash sudo mv /usr/share/webmin/password_change.cgi /usr/share/webmin/password_change.cgi.disabled
    • Внимание: Это временное решение. После обновления верните скрипт на место или убедитесь, что обновление прошло успешно.