Уязвимость в 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, для этой проблемы нет другого решения, кроме как избегать ненадежных репозиториев.


Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!