19.04.2021

Опасные уязвимости в системе управления конфигурацией SaltStack

В новых выпусках системы централизованного управления конфигурацией 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-атаки.

Источник.