В новых выпусках системы централизованного управления конфигурацией SaltStack 3002.5, 3001.6 и 3000.8 устранена уязвимость (CVE-2020-28243) позволяющая непривилегированному локальному пользователю хоста повысить свои привилегии в системе. Проблема вызвана ошибкой в обработчике salt-minion, применяемом для приёма команд с центрального сервера. Уязвимость была выявлена в ноябре, но исправлена только сейчас.
При выполнении операции “restartcheck” имеется возможность осуществить подстановку произвольных команд через манипуляции с именем процесса. В частности, запрос наличия пакета осуществлялся через запуск пакетного менеджера с передачей аргумента, полученного на основе имени процесса. Пакетный менеджер запускается через вызов функции popen в режиме запуска shell, но без экранирования спецсимволов. Изменив имя процесса и используя символы подобные “;” и “|” можно организовать выполнение своего кода.
Кроме отмеченной проблемы в SaltStack 3002.5 устранено ещё 9 уязвимостей:
- CVE-2021-25281 – из-за отсутствия должной проверки полномочий удалённый атакующий может через обращение к SaltAPI запустить любой wheel-модуль на стороне управляющего master-сервера и скомпрометировать всю инфраструктуру.
- CVE-2021-3197 – проблема в SSH-модуле к minion, позволяющая выполнить произвольные shell-команды через подстановку аргумента с настройкой “ProxyCommand” или передачу ssh_options через API.
- CVE-2021-25282 – неавторизированный доступ к wheel_async позволяет через обращение к SaltAPI переписать файл за пределами базового каталога и выполнить произвольный код в системе.
- CVE-2021-25283 – выход за пределы базового каталога в обработчике wheel.pillar_roots.write в SaltAPI позволяет добавить произвольный шаблон к jinja renderer.
- CVE-2021-25284 – задаваемые через webutils пароли оседали в открытом виде в логе /var/log/salt/minion .
- CVE-2021-3148 – возможность подстановки команд через SaltAPI вызов salt.utils.thin.gen_thin().
- CVE-2020-35662 – отсутствие проверки SSL-сертификата в конфигурации по умолчанию.
- CVE-2021-3144 – возможность использования токенов аутентификации eauth после истечения времени их действия.
- CVE-2020-28972 – в коде не проверялся SSL/TLS-сертификат сервера, что позволяло совершить MITM-атаки.