Уязвимость позволяет автоматически рассматривать и утверждать вредоносные pull-запросы.
<p>
Японский исследователь в области безопасности, использующий псевдоним RyotaK, <a href="
https://brew.sh/2021/04/21/security-incident-disclosure/ ">обнаружил</a> критическую уязвимость в официальном репозитории Homebrew Cask. Ее эксплуатация позволяла злоумышленнику выполнить произвольный код на компьютерах пользователей c установленным ПО Homebrew.
</p>
<p>
Homebrew — бесплатное решение для управления пакетами программного обеспечения с открытым исходным кодом, позволяющее устанавливать программное обеспечение на устройствах под управлением ОС macOS и Linux. Homebrew Cask расширяет функциональные возможности, включая рабочие процессы командной строки для приложений macOS на основе графического интерфейса пользователя, шрифтов, плагинов и другого программного обеспечения без открытого исходного кода.
</p>
<p>
Проблема связана с обработкой изменений кода в репозитории на
GitHub, что позволяло автоматически рассматривать и утверждать вредоносные pull-запросы<br>
</p>
<p>
«Уязвимость позволяет злоумышленнику внедрить произвольный код в контейнер и автоматически объединить его. Это происходит из-за проблемы в зависимости git_diff действия GitHub review-cask-pr, которое используется для синтаксического анализа различий в pull-запросе для проверки. Синтаксический анализатор можно обмануть, и он полностью проигнорирует вредоносные строки, что приведет к успешному одобрению вредоносного pull-запроса», — пояснили представители Homebrew.
</p>
<p>
Исследователь также продемонстрировал PoC-код для эксплуатации уязвимости. Разработчики Homebrew удалили автоматическое объединение кода в контейнере на GitHub, а также отключили и удалили действие review-cask-pr из всех уязвимых репозиториев.
</p>
<p>
Кроме того, для ботов была удалена возможность фиксации в репозиториях homebrew/cask*, и в дальнейшем все pull-запросы потребуют ручного просмотра и утверждения.
</p>