CVE-2026-67323
WysokieCVSS 8.4Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 60 - wyżej niż 60% wszystkich znanych CVE
Streszczenie
GitPython przed wersją 3.1.51 nie zabezpiecza przed niebezpiecznymi opcjami Git przekazywanymi jako argumenty słownikowe w metodach Repo.archive() i git.ls_remote(), co umożliwia wstrzyknięcie poleceń przez opcje takie jak --exec/--upload-pack. Dodatkowo, Repo.iter_commits() i Repo.blame() nie sprawdzają argumentów rewizji zaczynających się od myślnika, co pozwala na otwarcie i obcięcie dowolnego pliku poprzez rewizję --output=<path>. Wymagana jest aplikacja przekazująca kontrolowane przez atakującego argumenty do tych metod.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolne polecenia systemowe lub odczytać/zapisać dowolne pliki, co prowadzi do pełnej kompromitacji serwera i wycieku danych.
Rekomendacja
Zaktualizuj GitPython do wersji 3.1.51 lub nowszej. Sprawdź, czy aplikacja nie przekazuje niesprawdzonych danych wejściowych do metod Repo.archive(), git.ls_remote(), Repo.iter_commits() i Repo.blame().
Inne podatności w GitPython
Zobacz wszystkie- CVE-2026-73624Wysokie
GitPython przed wersją 3.1.54 zawiera podatność na nadpisanie dowolnych plików w metodzie Diffable.diff, która nie waliduje opcji git przekazywanych przez kwargs. Atakujący mogą podać argument --output przez parametr other lub kwarg output, aby zapisać treść patchy do wybranych przez atakującego ścieżek plików z uprawnieniami procesu.
- CVE-2026-73622Wysokie
GitPython przed wersją 3.1.55 nie wyłącza rozwijania zmiennych środowiskowych w obsłudze URL w metodach Remote.create() i Submodule.add(), co pozwala atakującym na eksfiltrację sekretów poprzez podanie URL zawierających odwołania do zmiennych. Atakujący mogą tworzyć URL z tokenami zmiennych środowiskowych, które są rozwijane do .git/config i .gitmodules, a następnie przesyłane do kontrolowanych przez atakującego hostów podczas operacji fetch lub pull.
- CVE-2026-73620Wysokie
GitPython przed wersją 3.1.57 nie zabezpiecza przekazywania opcji git w metodach IndexFile.checkout() i TagReference.create(), co pozwala atakującym na przekazanie niebezpiecznych opcji przez kwargs. Atakujący mogą użyć --prefix do nadpisania dowolnych plików zawartością repozytorium lub -F do odczytu dowolnych plików zwracanych w odpowiedzi.
- 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.
Oryginalny opis (angielski, źródło NVD)
GitPython before 3.1.51 fails to guard against dangerous Git options passed as keyword arguments in Repo.archive() and git.ls_remote(), allowing command injection via options such as --exec/--upload-pack (leading to arbitrary command execution). Additionally, Repo.iter_commits() and Repo.blame() do not check for leading-dash revision arguments, so a revision like --output=<path> can cause Git to open and truncate an arbitrary file. Exploitation requires an application that passes attacker-controlled arguments to these methods.

