Luki w Git podczas klonowania submodułów i korzystania z powłoki git

Opublikowano wydania korygujące rozproszonego systemu kontroli źródła Git 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, które naprawiają dwie luki, które pojawiają się podczas korzystania z polecenia „git clone” w trybie „-recurse-submodules” z niesprawdzonymi repozytoriami oraz podczas korzystania z trybu interaktywnego „git Shell”. Możesz śledzić wydawanie aktualizacji pakietów w dystrybucjach na stronach Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.

  • CVE-2022-39253 — Luka umożliwia osobie atakującej kontrolującej zawartość sklonowanego repozytorium uzyskanie dostępu do poufnych danych w systemie użytkownika poprzez umieszczenie dowiązań symbolicznych do odpowiednich plików w katalogu $GIT_DIR/objects sklonowanego repozytorium. Problem pojawia się tylko podczas klonowania lokalnego (w trybie „--local”, używanym, gdy dane docelowe i źródłowe klonowania znajdują się na tej samej partycji) lub podczas klonowania złośliwego repozytorium spakowanego jako podmoduł w innym repozytorium (na przykład podczas rekurencyjnego dołączania podmodułów za pomocą polecenia „git clone” --recurse-submodules”).

    Luka wynika z faktu, że w trybie klonowania „--local” git przenosi zawartość $GIT_DIR/objects do katalogu docelowego (tworząc twarde dowiązania lub kopie plików), dokonując dereferencji dowiązań symbolicznych (tj. w rezultacie dowiązania niesymboliczne są kopiowane do katalogu docelowego, ale bezpośrednio do plików, na które wskazują łącza). Aby zablokować tę lukę, nowe wydania gita zabraniają klonowania repozytoriów w trybie „--local”, które zawierają dowiązania symboliczne w katalogu $GIT_DIR/objects. Dodatkowo zmieniono domyślną wartość parametru protokół.file.allow na „user”, co powoduje, że operacje klonowania przy użyciu protokołu file:// są niebezpieczne.

  • CVE-2022-39260 — Przepełnienie liczby całkowitej w funkcji split_cmdline() używanej w poleceniu „git Shell”. Problem można wykorzystać do zaatakowania użytkowników, którzy mają „git Shell” jako powłokę logowania i mają włączony tryb interaktywny (utworzono plik $HOME/git-shell-commands). Wykorzystanie luki może spowodować wykonanie dowolnego kodu w systemie podczas wysyłania specjalnie zaprojektowanego polecenia o rozmiarze większym niż 2 GB.

Źródło: opennet.ru

Dodaj komentarz