Luki w zabezpieczeniach Git, które umożliwiają nadpisywanie plików lub wykonywanie własnego kodu

Wersje naprawcze rozproszonego systemu kontroli źródła Git 2.40.1, 2.39.3, 2.38.5, 2.37.7, 2.36.6, 2.35.8, 2.34.8, 2.33.8, 2.32.7, 2.31.8 i 2.30.9 zostały opublikowano wersję .XNUMX, która naprawiła pięć luk. Możesz śledzić wydawanie aktualizacji pakietów w dystrybucjach na stronach Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Jako obejście w celu ochrony przed lukami w zabezpieczeniach, zaleca się unikanie uruchamiania polecenia „git apply --reject” podczas pracy z nieprzetestowanymi zewnętrznymi łatami i sprawdzanie zawartości $GIT_DIR/config przed uruchomieniem „git submodule deinit”, „git config --rename-section” i „git config --remove-section” w przypadku niezaufanych repozytoriów.

Luka CVE-2023-29007 umożliwia podmianę ustawień w pliku konfiguracyjnym $GIT_DIR/config, który może zostać wykorzystany do wykonania kodu w systemie poprzez określenie ścieżek do plików wykonywalnych w dyrektywach core.pager, core.editor i core.sshCommand. Luka spowodowana jest błędem logicznym, przez który bardzo długie wartości konfiguracyjne mogą być traktowane jako początek nowej sekcji podczas zmiany nazwy lub usuwania sekcji z pliku konfiguracyjnego. W praktyce podstawianie wartości eksploatacyjnych można osiągnąć poprzez podanie bardzo długich adresów URL submodułów, które są przechowywane w pliku $GIT_DIR/config podczas inicjalizacji. Te adresy URL można interpretować jako nowe ustawienia podczas próby ich usunięcia za pomocą „git submodule deinit”.

Luka CVE-2023-25652 umożliwia nadpisywanie zawartości plików poza drzewem roboczym, gdy specjalnie spreparowane poprawki są przetwarzane przez polecenie „git apply --reject”. Jeśli spróbujesz wykonać złośliwą poprawkę za pomocą polecenia „git apply”, która próbuje zapisać do pliku przez dowiązanie symboliczne, operacja zostanie odrzucona. W Git 2.39.1 ochrona przed manipulacją dowiązaniami symbolicznymi została rozszerzona o blokowanie łatek, które tworzą dowiązania symboliczne i próbują zapisywać przez nie. Istota rozważanej podatności polega na tym, że Git nie wziął pod uwagę, że użytkownik może wykonać polecenie „git apply -reject” w celu zapisania odrzuconych części łaty jako plików z rozszerzeniem „.rej”, a atakujący może skorzystaj z okazji, aby zapisać zawartość do dowolnego katalogu, o ile pozwalają na to obecne uprawnienia.

Ponadto naprawiono trzy luki, które pojawiają się tylko na platformie Windows: CVE-2023-29012 (wyszukiwanie pliku wykonywalnego doskey.exe w katalogu roboczym repozytorium podczas wykonywania polecenia „Git CMD”, co pozwala na uporządkowanie wykonanie Twojego kodu w systemie użytkownika), CVE-2023 -25815 (przepełnienie bufora podczas przetwarzania niestandardowych plików lokalizacyjnych w gettext) oraz CVE-2023-29011 (możliwość podmiany pliku connect.exe podczas pracy przez SOCKS5).

Źródło: opennet.ru

Dodaj komentarz