Уязвимость в Git LFS позволяет скомпрометировать Windows-системы

Уязвимость в Git LFS позволяет скомпрометировать Windows-системы

Эксплуатация уязвимости позволяет злоумышленнику удаленно выполнить код.

Исследователь безопасности Давид Голунски (Dawid Golunski) обнаружил критическую уязвимость ( CVE-2020-27955 ) в Git Large File Storage (Git LFS) — расширении Git с открытым исходным кодом для управления версиями больших файлов. Ее эксплуатация позволяет злоумышленнику удаленно выполнить код, если он обманом заставит пользователя системы под управлением Windows копировать вредоносный репозиторий с помощью уязвимого инструмента Git.

Проблему можно использовать в различных популярных клиентах Git с конфигурациями по умолчанию — GitHub CLI, GitHub Desktop, SmartGit, SourceTree, GitKraken, Visual Studio Code и пр.

«Web-приложения/размещенные репозитории, работающие на системе Windows, которые позволяют импортировать свои репозитории с URL-адреса, также могут быть подвержены данной уязвимости», — отметил эксперт.

Git LFS не указывает полный путь к двоичному git-файлу при выполнении нового процесса git через конкретную функцию exec.Command().

«Поскольку реализация exec.Command() на системах Windows включает текущий каталог, злоумышленники могут создать бэкдор во вредоносном репозитории, просто добавив исполняемый файл с именем git.bat, git.exe, git.cmd или любым другим расширением, которое используется на системе жертвы. В результате вредоносный двоичный файл git, установленный таким образом, будет выполняться вместо исходного двоичного git-файла, расположенного по доверенному пути», — пояснил Голунски.

Голунски выпустил PoC-код для эксплуатации данной уязвимости, а также видео-демонстрацию эксплоита в действии на различных клиентах Git.

Уязвимость затрагивает версии Git LFS 2.12 или старше. По словам специалистов Git LFS, для этой проблемы нет другого решения, кроме как избегать ненадежных репозиториев.


Тени в интернете всегда следят за вами

Станьте невидимкой – подключайтесь к нашему каналу.