CVE-2026-110857
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wykonać dowolne polecenia w kontekście procesu aplikacji korzystającej z GitPython, co prowadzi do pełnego przejęcia systemu. Ryzyko jest wysokie wszędzie tam, gdzie przetwarzane są niezaufane adresy URL repozytoriów.
Rekomendacja
Zaktualizuj GitPython do wersji 3.2.0 lub nowszej. Do czasu aktualizacji unikaj przekazywania niezaufanych adresów URL do Git.ls_remote, merge_base i IndexFile.move.
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ń.
- GHSA-w8jc-g24h-crhwWysokie
GitPython od 2022 do 2026 roku wdrażał metodycznie dwa zabezpieczenia: Git.check_unsafe_protocols(url) (zgłasza UnsafeProtocolError dla URL-i typu <transport>::) oraz Git.check_unsafe_options(...) (zgłasza UnsafeOptionError dla opcji z listy zabronionych). Opis wskazuje, że wdrożenie tych zabezpieczeń nie objęło wszystkich ścieżek kodu.
- GHSA-m64x-33q8-m5h7Wysokie
To pozostałość po GHSA-g5vv-9gxw-82hx / CVE-2026-87819. Poprawka w wersji 3.1.60 uczyniła Actor._from_string wolnym od wyrażeń regularnych, ale parse_actor_and_date nadal uruchamia _re_actor_epoch na tej samej linii autora/zatwierdzającego/taggera o krok wcześniej. Wzorzec ten wykazuje kwadratowe cofanie przy końcowym epo...
- GHSA-jm78-9fvv-mhgrWysokie
Walidator nazw konfiguracji w GitPython neutralizuje tylko znaki CR/LF/NUL dla etykiety "option"; nie odrzuca znaków =, #, ;, [, ] ani białych znaków w nazwie opcji. Funkcja write_section zapisuje nazwę opcji dosłownie do pliku konfiguracyjnego, więc nazwa taka jak sshCommand = touch <cmd> może wstrzyknąć konfigurację.
- GHSA-59cr-6r3x-644wŚrednie
GitPython w wersji 3.1.61 (oraz gałąź main) ma lukę w git/objects/submodule/base.py — poprawka dla GHSA-hmq2-w58f-27jc dodała Submodule._validated_name(), ale opis nie precyzuje pełnego zakresu problemu. Kod w tym obszarze jest identyczny w 3.1.61 i main.
- GHSA-f9j4-qggq-h239Wysokie
W bibliotece GitPython metoda Remote.pull() przekazuje pozycyjny argument refspec bezpośrednio do procesu potomnego git pull, podczas gdy zabezpieczenie przed niebezpiecznymi opcjami sprawdza tylko argumenty nazwane. Aplikacja przekazująca dane kontrolowane przez atakującego jako refspec (np. nazwę gałęzi podaną przez użytkownika) może umożliwić wstrzyknięcie niebezpiecznych opcji.
- GHSA-gq48-pqfc-9p58Średnie
Publiczne API GitPython Submodule.move() weryfikuje, że cel znajduje się leksykalnie wewnątrz repozytorium nadrzędnego, ale nie odrzuca dowiązań symbolicznych w pośrednich komponentach ścieżki docelowej przed operacjami na systemie plików. W systemach, które pobierają symlinki Git, niezaufane repozytorium może to wykorzystać.
Oryginalny opis (angielski, źródło NVD)
GitPython before 3.2.0 contains a remote code execution vulnerability that allows attackers to run commands because Git.ls_remote forwards URLs without check_unsafe_protocols validation. Attackers can supply ext:: remote-helper URLs to execute commands when git permits the ext transport, while merge_base and IndexFile.move also accept unguarded option injection.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

