habrahabr

Уязвимость в Git: выполнение произвольных команд

  • понедельник, 22 декабря 2014 г. в 02:11:13
http://habrahabr.ru/post/246377/

Обнаружена новая критическая уязвимость 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.