Luki w Git, które pozwalają na nadpisanie plików lub wykonanie własnego kodu

Opublikowano poprawki do rozproszonego systemu zarządzania kodem Git w wersjach 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 oraz 2.30.9, w których usunięto pięć luk bezpieczeństwa. Informacje o wydaniach aktualizacji pakietów w dystrybucjach można znaleźć na stronach Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Aby chronić się przed lukami, zaleca się unikanie wykonywania polecenia „git apply —reject” przy pracy z niezaufanymi zewnętrznymi poprawkami oraz sprawdzanie zawartości $GIT_DIR/config przed uruchomieniem poleceń „git submodule deinit”, „git config —rename-section” oraz „git config —remove-section” przy pracy z niewiarygodnymi repozytoriami.

Luka CVE-2023-29007 umożliwia wstrzyknięcie ustawień do pliku konfiguracyjnego $GIT_DIR/config, które mogą być używane do wykonywania kodu w systemie poprzez wskazanie ścieżek do plików wykonywalnych w dyrektywach core.pager, core.editor oraz core.sshCommand. Luka ta powstała z powodu błędu logicznego, w wyniku którego bardzo długie wartości konfiguracyjne mogą być przetwarzane jako początek nowej sekcji podczas operacji zmiany nazwy lub usuwania sekcji z pliku konfiguracyjnego. W praktyce możliwości wykorzystania podatnych wartości można uzyskać poprzez wskazanie bardzo długich adresów URL submodułów, które są zapisywane w pliku $GIT_DIR/config podczas inicjalizacji. Te adresy URL mogą być interpretowane jako nowe ustawienia w przypadku próby ich usunięcia poprzez polecenie „git submodule deinit”.

Luka CVE-2023-25652 pozwala na nadpisywanie zawartości plików poza drzewem roboczym podczas przetwarzania specjalnie sformatowanych poprawek przez polecenie „git apply —reject”. W przypadku próby wykonania polecenia „git apply” złośliwej poprawki próbującej zapisać do pliku przez symlink, operacja zostanie odrzucona. W Git 2.39.1 ochrona przed manipulacjami przez symlinki została rozszerzona o blokadę poprawek tworzących symlinki i próbujących zapisywać przez nie. Istotą omawianej luki jest to, że Git nie brał pod uwagę, że użytkownik może wykonać polecenie „git apply —reject” w celu zapisania odrzuconych części poprawki jako pliki z rozszerzeniem „.rej”, a atakujący może wykorzystać tę możliwość do zapisu zawartości w dowolnym katalogu, w zależności od bieżących uprawnień dostępu.

Ponadto usunięto trzy podatności, które występowały tylko na platformie Windows: CVE-2023-29012 (wyszukiwanie wykonywalnego doskey.exe w katalogu roboczym repozytorium podczas wykonywania polecenia „Git CMD”, co umożliwia uruchomienie własnego kodu w systemie użytkownika), CVE-2023-25815 (przepełnienie bufora podczas przetwarzania specjalnie przygotowanych plików lokalizacyjnych w gettext) oraz CVE-2023-29011 (możliwość podmienienia pliku connect.exe podczas pracy przez SOCKS5).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster