Релиз Git 2.14.1 закрывающий выполнение любой программы через ssh://... URL

1 minute read Published:

Пару дней назад команда Git выпустила релиз 2.14.1 закрывающий уязвимость CVE-2017-1000117 в URL репозиториев.

Настоятельно рекомендую обновиться до последней версии.

Вместе с v2.14.1 вышли “заплатки” для ранних версий: v2.7.6, v2.8.6, v2.9.5, v2.10.4, v2.11.3, v2.12.4 и v2.13.5.

Аналогичная проблема так же актуальна для Subversion и Mercurial. CVE-2017-9800 и CVE-2017-1000116 были созданы для этих систем и адресованы разработчикам для координации релизов.

Суть уязвимости заключается в том, что злоумышленник может предоставить особый URL вида ssh://… ничего не подозревающему человеку. Попытка посетить подобный URL приведет к выполнению любой программы существующей на его машине. Размещенный в .gitmodules файле URL вредоносного проекта при выполнении git clone --recurse-submodules запустит уязвимость.

  • URL вида “ssh://…” может привести к “ssh” команде с именем хоста, который начинается с тире “–”. В данном случае команда будет рассматриваться как опция. Использование подобных имен хостов теперь запрещено.

  • Аналогично, существующая GIT_PROXY_COMMAND может выполняться с хостом и номером порта указанными в ssh://... URL; в строку GIT_PROXY_COMMAND также возможно добавить тире “–”. В текущем релизе Git спользование подобных имени хоста и номера порта запрещено, что никак не должно повлиять на реальные случаи.

  • В том же духе, использование имени репозитория начинающегося с тире “–” становится невозможным.


P.S. Уязвимость была найдена и исправлена славными парнями Brian Neel из GitLab, Joern Schneeweisz из Recurity Labs и Jeff King из GitHub.

comments powered by Disqus