В Webmin найден бэкдор, позволяющий удалённо получить доступ с правами root

В пакете Webmin, предоставляющем средства для удалённого управления сервером, выявлен бэкдор (CVE-2019-15107), обнаруженный в официальных сборках проекта, распространяемых через Sourceforge и рекомендованных на основном сайте. Бэкдор присутствовал в сборках с 1.882 по 1.921 включительно (в git-репозитории код с бэкдором отсутствовал) и позволял удалённо без прохождения аутентификации выполнить произвольные shell-команды в системе с правами root.

Для атаки достаточно наличия открытого сетевого порта с Webmin и активности в web-интерфейсе функции смены устаревшего пароля (по умолчанию включена в сборках 1.890, но в остальных версиях выключена). Проблема устранена в обновлении 1.930. В качестве временной меры для блокирования бэкдора достаточно убрать настройку «passwd_mode=» из файла конфигурации /etc/webmin/miniserv.conf. Для тестирования подготовлен прототип эксплоита.

Проблема была обнаружена в скрипте password_change.cgi, в котором для проверки введённого в web-форме старого пароля используется функция unix_crypt, которой передаётся полученный от пользователя пароль без выполнения экранирования спецсимволов. В git-репозитории данная функция является обвязкой над модулем Crypt::UnixCrypt и не представляет опасности, но в поставляемом на сайте Sourceforge архиве с кодом вызывается код, который напрямую обращается к /etc/shadow, но делает это при помощи shell-конструкции. Для атаки достаточно указать в поле со старым паролем символ «|» и следующий после него код будет выполнен с правами root на сервере.

По заявлению разработчиков Webmin, вредоносный код был подставлен в результате компрометации инфраструктуры проекта. Подробности пока не сообщаются, поэтому не ясно, ограничился ли взлом захватом управления над учётной записью в Sourceforge или затронул и другие элементы инфраструктуры разработки и сборки Webmin. Вредоносный код присутствовал в архивах с марта 2018 года. Проблема также затронула сборки Usermin. В настоящее время все загрузочные архивы пересобраны из Git.

Источник: opennet.ru

Добавить комментарий