Уязвимость в Git: выполнение произвольных команд
Обнаружена новая критическая уязвимость CVE-2014–9390 в Git, позволяющая выполнить произвольные команды на клиенте.Суть уязвимости заключается в возможности совершить коммит в .Git/config, что равносильно служебному пути .git/config на регистронезависимых файловых системах. Это дает возможность инициировать запуск произвольных команд на клиенте. В общем случае уязвимости подвержены рабочие станции на Windows и Mac OS X, Linux-системы будут подвержены в случае использования регистронезависимых файловых систем.Согласно анонсу в рассылке linux-kernel Ранее мы разрешали делать коммиты в ».Git/config», однако на регистронезависимых файловых системах это позволило бы писать в ».git/config», что определенно не является ожидаемым поведением программы. Отныне Git запрещает использование ».Git» (в любом регистре) в пути.
На Windows определенные пути также могут отображаться в .git, например, git~1/config дает доступ к .git/config. Файловая система HFS+ также может предоставить доступ к этому пути при использовании символов Юникода, например, .g\u200cit/config. Подобные пути отныне будут отклоняться Git на потенциально уязвимых системах. На других системах, таких как Linux, возможно намеренно включить подобное поведение системы для обеспечения кроссплатформенности и общего повышения уровня безопасности.Проверить наличие проблем можно при помощи git fsck.
Уже вышли соответствующие исправления:
Интересно что на GitHub эксплуатация уязвимости невозможна. Сотрудники компании сразу после появления информации о баге запретили новые злонамеренные коммиты и выполнили проверку всех существующих репозиториев на предмет наличия в них CVE-2014–9390.