CVE-2026-110860
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
GitPython od wersji 3.1.62 do 3.2.0 zawiera błąd podążania za dowiązaniami symbolicznymi w Submodule.move(), który sprawdza cel tylko leksykalnie i nie odrzuca dowiązań symbolicznych w pośrednich komponentach ścieżki. Niezaufane repozytorium może zatwierdzić dowiązanie symboliczne wskazujące poza drzewo robocze, przez co aplikacja przenosząca zainicjowany podmoduł pod nim przenosi checkout na zewnątrz i uszkadza indeks oraz .gitmodules.
Ocena ryzyka
Złośliwe repozytorium może spowodować przeniesienie checkoutu poza drzewo robocze i uszkodzenie indeksu oraz .gitmodules, prowadząc do niezamierzonych modyfikacji plików.
Rekomendacja
Zaktualizuj GitPython do wersji 3.2.0 lub nowszej, aby usunąć podatność.
Inne podatności w GitPython
Zobacz wszystkie- CVE-2026-44244Wysokie
GitPython to biblioteka Pythona służąca do interakcji z repozytoriami Git. W wersjach przed 3.1.49 metoda GitConfigParser.set_value() nie weryfikowała wartości pod kątem nowych linii, co pozwalało na wstrzykiwanie złośliwych ścieżek do konfiguracji Git.
- CVE-2026-44243Wysokie
GitPython to biblioteka Pythona służąca do interakcji z repozytoriami Git. Przed wersją 3.1.48 istniała podatność, która pozwalała atakującym na manipulację plikami poza katalogiem .git repozytorium poprzez niewystarczającą walidację ścieżek odniesienia.
- CVE-2026-42284Wysokie
GitPython to biblioteka Pythona służąca do interakcji z repozytoriami Git. W wersjach przed 3.1.47 funkcja _clone() nieprawidłowo waliduje opcje multi_options, co pozwala na wykonanie złośliwych hooków podczas klonowania repozytoriów.
- CVE-2026-42215Wysokie
GitPython to biblioteka Pythona służąca do interakcji z repozytoriami Git. W wersjach od 3.1.30 do przed 3.1.47, biblioteka blokuje niebezpieczne opcje Git, ale odpowiednie argumenty Pythona mogą je ominąć, co prowadzi do wykonania dowolnych poleceń.
- CVE-2026-78676Krytyczne
GitPython przed wersją 3.1.59 niebezpiecznie przetwarza wieloliniowe wartości konfiguracji git podczas zapisu, co może przekształcić uśpione wartości w aktywne dyrektywy, takie jak core.hooksPath. Atakujący może spreparować plik konfiguracyjny z osadzonymi nowymi liniami, co po zapisie przez GitPython umożliwia wykonanie dowolnego kodu.
- CVE-2026-67324Krytyczne
GitPython 3.1.50 nie rozpoznaje połączonych krótkich form opcji, takich jak -u<value> (krótka forma --upload-pack=<value>), podczas egzekwowania domyślnej bramy niebezpiecznych opcji. Gdy aplikacja przekazuje opcje klonowania pod wpływem atakującego do Repo.clone_from(..., multi_options=..., allow_unsafe_options=False), atakujący może dostarczyć -u<helper>, aby ominąć bramę blokującą --upload-pack/-u, powodując wykonanie przez Git określonego polecenia pomocniczego podczas klonowania. Naprawione w wersji 3.1.51.
- CVE-2023-40267Krytyczne
GitPython w wersjach przed 3.1.32 nie blokuje niebezpiecznych opcji w clone i clone_from. Problem ten występuje z powodu niekompletnej poprawki dla CVE-2022-24439.
- CVE-2026-110859Wysokie
GitPython przed wersją 3.2.0 zawiera podatność wstrzyknięcia argumentów w metodzie Head.checkout() pozwalającą zdalnym atakującym odczytać dowolne pliki poprzez podanie nazwy gałęzi interpretowanej jako opcja git. Atakujący może hostować repozytorium, którego domyślna gałąź nazywa się --pathspec-from-file=<path>, powodując wyciek zawartości plików przez komunikaty GitCommandError w aplikacjach klonujących i przełączających się na aktywną gałąź.
- CVE-2026-110858Wysokie
GitPython w wersjach od 3.1.30 do 3.2.0 zawiera podatność zdalnego wykonania kodu w metodzie Remote.pull(), której zabezpieczenie przed niebezpiecznymi opcjami sprawdza tylko argumenty nazwane, a nie pozycyjny refspec. Atakujący kontrolujący refspec może podać --upload-pack=<command>, aby wykonać polecenia systemowe jako proces wywołujący przez transport lokalny lub SSH.
- CVE-2026-110857Wysokie
GitPython w wersjach przed 3.2.0 zawiera podatność umożliwiającą zdalne wykonanie kodu, ponieważ Git.ls_remote przekazuje adresy URL bez walidacji check_unsafe_protocols. Atakujący mogą podać adresy URL typu ext:: remote-helper, aby wykonać polecenia, gdy git zezwala na transport ext; podobny problem dotyczy merge_base i IndexFile.move, które akceptują wstrzyknięcie opcji.
Oryginalny opis (angielski, źródło NVD)
GitPython from 3.1.62 before 3.2.0 contains a symlink-following flaw in Submodule.move(), which checks the destination only lexically and does not reject symbolic links in intermediate path components. An untrusted repository can commit a symlink such as vendor pointing outside the worktree, so an application moving an initialized submodule beneath it relocates the checkout externally and corrupts the index and .gitmodules.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

