Opublikowano poprawki do rozproszonego systemu zarządzania kodem źródłowym Git w wersjach 2.38.1, 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3 i 2.37.4, w których usunięto dwie luki bezpieczeństwa, które pojawiały się podczas używania polecenia „git clone” w trybie „—recurse-submodules” z niezweryfikowanymi repozytoriami oraz przy korzystaniu z interaktywnego trybu pracy „git shell”. Można śledzić wydanie aktualizacji pakietów w dystrybucjach na stronach Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
- CVE-2022-39253 — luka pozwala atakującemu, kontrolującemu zawartość klonowanego repozytorium, uzyskać dostęp do poufnych danych na systemie użytkownika, poprzez umieszczenie w katalogu $GIT_DIR/objects klonowanego repozytorium dowiązań symbolicznych do interesujących plików. Problem występuje tylko podczas lokalnego klonowania (w trybie „—local”, stosowanym gdy docelowe i źródłowe dane klonowania znajdują się w tej samej partycji) lub podczas klonowania złośliwego repozytorium zapakowanego jako submoduł w innym repozytorium (np. podczas rekurencyjnego włączania submodułów polecenie „git clone —recurse-submodules”).
Luka wynika z tego, że w trybie klonowania „—local”, git przenosi zawartość $GIT_DIR/objects do katalogu docelowego (tworzy twarde dowiązania lub kopie plików), wykonując dereferencję dowiązań symbolicznych (tj. ostatecznie do katalogu docelowego kopiowane są nie dowiązania symboliczne, a bezpośrednio pliki, do których odwołują się dowiązania). Aby zablokować przejawianie się luki w nowych wersjach git, zabroniono klonowania repozytoriów w trybie „—local”, zawierających dowiązania symboliczne w katalogu $GIT_DIR/objects. Ponadto domyślna wartość parametru protocol.file.allow została zmieniona na „user”, co klasyfikuje operacje klonowania z użyciem protokołu file:// jako niebezpieczne.
- CVE-2022-39260 — przepełnienie całkowite w funkcji split_cmdline(), używanej w poleceniu „git shell”. Problem może być wykorzystany do ataku na użytkowników, którzy używają „git shell” jako powłoki przy logowaniu i mają włączony tryb interaktywny (utworzono plik $HOME/git-shell-commands). Wykorzystanie luki może prowadzić do wykonania dowolnego kodu w systemie po przesłaniu specjalnie sformułowanego polecenia o rozmiarze większym niż 2 GB.
Źródło: opennet.ru
