Коригиращи версии разпределената система за управление на изходния текст 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, в които е отстранен () в обработчика "" води до изпращане на удостоверителни данни към неправилен хост, когато git клиентът се свързва с репозитория чрез специално форматиран URL, съдържащ символ на нов ред. Уязвимостта може да бъде използвана за изпращане на данни от друг хост на сървър, контролиран от атакуващия.
При посочване на URL вида «https://evil.com?host=github.com/», обработчик на данни при свързване към хост evil.com ще предаде параметрите за удостоверяване, зададени за github.com. Проблемът се проявява при извършване на подобни операции, като «git clone», включително при обработка на URL за подмодули (например, при изпълнение на «git submodule update» ще бъдат автоматично обработени URL, зададени в файла .gitmodules от репозитория). Най-голямата опасност от уязвимостта възниква в ситуации, когато разработчикът клонира репозиторий, без да вижда URL, например, при работа с подмодули или в системи, които извършват автоматични действия, като в сценарии за компилация на пакети.
За блокиране на уязвимостта в новите версии передаването на символ на нов ред във всички стойности, предавани чрез протокола за обмен на удостоверителни данни. За дистрибуциите можете да следите за издаване на актуализации на пакетите на страниците , , , , , , .
Като временно решение за блокиране на проблема не използвайте 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
Източник: opennet.ru
