
public disclosure
Затронутое приложение: MindManager23_setup.exe
Платформа: Windows
Проблема: локальное повышение привилегий через режим восстановления MSI-установщика (состояние гонки при перехвате EXE)
Обнаружено и сообщено: Pawel Karwowski и Julian Horoszkiewicz (Eviden Red Team)
Предлагаемое смягчение: https://learn.microsoft.com/en-us/windows/win32/msi/disablemsi
Обоснование публичного раскрытия: В долгосрочной перспективе бесконечное хранение этой информации в тайне выгодно злоумышленникам (проблему тривиально найти), в то время как пользователи и администраторы остаются в неведении, не подозревая о риске.
Какова позиция вендора? По словам вендора, это не их ответственность, поскольку уязвимость находится в стороннем компоненте (CVE-2021-41526). Это, однако, не означает, что их программное обеспечение не уязвимо. Первоначально мы сообщили об этой проблеме вендору 22.08.2023. С тех пор нам не удалось убедить их выпустить исправление, даже несмотря на привлечение US CERT к координационным усилиям. После длительного периода переписки мы согласились с CERT, что в данной ситуации публичное раскрытие является правильным решением.
В чём заключается уязвимость? В системах с установленным MindManager23 обычные пользователи могут запустить установщик в режиме «восстановление» (repair), выполнив следующую команду: msiexec.exe /fa PATH_TO_INSTALLER_FILE.msi
Это запускает службу msiexec, которая выполняет процесс восстановления, запуская множество действий и, среди прочего, создаёт файлы в каталоге C:\Users\pk\AppData\Local\Temp. Имена этих файлов генерируются динамически по следующему шаблону: "wac<четыре случайные буквы или цифры>.tmp", например, wac98DF.tmp. Затем процесс использует сгенерированный файл wac****.tmp (исполняемый), работающий от имени NT AUTHORITY/SYSTEM, для записи и загрузки своего собственного образа.
Поскольку каталог C:\Users\pk\AppData\Local\ принадлежит обычному пользователю, каталог C:\Users\pk\AppData\Local\Temp\ наследует его права доступа, что позволяет обычному пользователю вмешиваться в содержимое каталога, например, перезаписывая динамически генерируемые DLL\EXE-файлы.
Повышение привилегий в установщике Mind Manager вызвано использованием известного уязвимого компонента — Flexera Installshield, затрагиваемого уязвимостью CVE-2021-41526. Mind Manager должен использовать актуальную версию Flexera Installshield — либо переупаковать MSI так, чтобы он не поддерживал «режим восстановления» (repair mode) или требовал административных привилегий для запуска.
Как происходит эксплуатация? Эксплуатация выполняется с помощью powershell-скрипта, который запускает .MSI-файл, отслеживает появление и создание нужного легитимного DLL\EXE, и многократно копирует Proof of Concept DLL\EXE в каталог Appdata\Local\Temp, фактически перезаписывая легитимный DLL\EXE-файл. После запуска PoC DLL\EXE-файл создаёт файл poc.txt в C:\Users\Public, вместе с командной строкой, которая его вызвала, и выводом команды whoami.