Введение

Уязвимость очень тривиальна – злоумышленник создает Git-дерево, что приводит к тому, что Git перезаписывает свой собственный .git/config файл при клонировании или проверке репозитория. Затем вызывается config файл, чтобы выполнить любой вредоносный код.

 

Gib


 

Конфигурационный файл может содержать измененные названия кода для команд Git и, следовательно, вредоносный файл конфигурации может повторно активировать команды Git для любых функций. Злоумышленник может выполнить, практически, любой код, который он хочет.

Причина проблемы заключается в том, что считается нормальным использовать вид записи .Git/config или любой другой, отличный от стандартного. Он рассматривается как стандартная папка, которая отличается от .git/config, находящейся за пределами репозитория. Однако, OSX и Windows используют «case insensitive file systems» и, в результате, .Git/config приравнивается к .git/config и, скопировав его, перезаписывается исходный .git/config. Если вы работаете с Linux или Unix, то Git работает корректно без вмешательства.

 

Схема

 

В целом, риск не так уж велик, потому что любой, кто хочет воспользоваться дефектом, должен иметь права для создания репозиториев и уязвимость появляется при работе в публичном репрозитории.

Решением проблемы является установка последних версий Git-клиента. Существует также проблема с остальными производителями программного обеспечения, которые используют библиотеки libgit2 и JGit.

GitHub также советуют устанавливать последнюю версию клиента.

Источник: http://www.i-programmer.info/news/149-security/8101-upgrade-git-client-to-avoid-vulnerability.html