aktualizacje poprawek systemu zarządzania kodem źródłowym 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 i 2.17.4, w których usunięto () w obsłudze „«, co prowadzi do przesyłania danych uwierzytelniających do niewłaściwego hosta, gdy klient git łączy się z repozytorium za pomocą specjalnie uformowanego URL, zawierającego znak nowej linii. Wykorzystanie tej podatności może umożliwić przesyłanie danych uwierzytelniających z innego hosta na serwer kontrolowany przez atakującego.
W przypadku podania URL takiego jak «https://evil.com?host=github.com/», obsługa danych uwierzytelniających podczas łączenia się z hostem evil.com przekaże parametry autoryzacji, utworzone dla github.com. Problem ujawnia się podczas wykonywania operacji takich jak „git clone”, w tym podczas przetwarzania URL dla submodułów (na przykład podczas wykonywania „git submodule update” automatycznie będą przetwarzane URL podane w pliku .gitmodules z repozytorium). Największe zagrożenie ta podatność stwarza w sytuacjach, gdy programista klonuje repozytorium nie widząc URL, np. pracując z submodułami, lub w systemach wykonujących automatyczne działania, takich jak skrypty budowy pakietów.
Aby zablokować podatność w nowych wersjach przesyłanie znaku nowej linii w jakichkolwiek wartościach przesyłanych przez protokół wymiany danych uwierzytelniających. Aby śledzić wydanie aktualizacji pakietów dla dystrybucji, można odwiedzić strony , , , , , , .
Jako tymczasowe rozwiązanie problemu nie używaj credential.helper podczas dostępu do publicznych repozytoriów i nie stosuj „git clone” w trybie „—recurse-submodules” z niezweryfikowanymi repozytoriami. Aby całkowicie wyłączyć obsługę credential.helper, która wykonuje i pobieranie haseł z , zabezpieczonego lub z pliku z hasłami, można użyć poleceń:
git config —unset credential.helper
git config —global —unset credential.helper
git config —system —unset credential.helper
Źródło: opennet.ru
