Критическая уязвимость в Git LFS, проявляющаяся на платформе Windows

5 ноября 2020 года

В Git LFS выявлена критическая уязвимость (CVE-2020-27955), позволяющая удалённому злоумышленнику выполнить свой код в системе жертвы, при клонировании жертвой специально оформленного репозитория. Проблема проявляется только на платформе Windows и устранена в предложенном несколько часов назад обновлении git-lfs 2.12.1. На Unix системах уязвимость не проявляется.

Проблема вызвана тем, что на платформе Windows для запуска нового процесса git используется вызов ExecCommand(), но не указывается полный путь к исполняемому файлу git. Если полный путь не указан, то функция ExecCommand() проверяет наличие исполняемого файла в текущем каталоге. Так как запуск осуществляется в контексте текущего репозитория, атакующий может разместить в своём репозитории файлы git.bat, git.exe или git.cmd. После клонирования репозитория подставленные злоумышленником файлы будут выполнены вместо исполняемого файла git при выполнении операций с git-lfs.

Для проверки своих систем подготовлен рабочий эксплоит. Возможность эксплуатации уязвимости протестирована в пакете Git с дополнением git-lfs, а также в Git-клиентах Git for Windows, GitHub CLI, GitHub Desktop, SourceTree, Visual Studio Code, GitKraken и SmartGit, использующих Git LFS в конфигурации по умолчанию. Проблема также потенциально затрагивает интегрированные среды разработки Eclipse, fork, tig, GitExtensions, Magit, TortoiseGit, gmaster, GitAhead, Sublime Merge, Visual Studio, GitAtomic, Tower и git-cola.

Напомним, что дополнение Git LFS (Git Large File Storage) развивается компанией GitHub и позволяет использовать Git для отслеживания версий больших файлов, содержащих наборы данных, звук, видео и графику. В штатном Git-репозитории большие файлы заменяются на текстовые ссылки, указывающие на контент в отдельном внешнем репозитории, что позволяет избежать повторного копирования файлов при клонировании и извлечении репозитория. При выполнении операций checkout большие файлы не загружаются вместе с остальными данными, а синхронизируются с сервера и хранятся в единственной копии. Код распространяется под лицензией MIT.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Критическая уязвимость в Git LFS, проявляющаяся на платформе Windows», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.