CVE-2026-73624
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 45 - wyżej niż 45% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może nadpisać dowolne pliki na serwerze, co może prowadzić do modyfikacji konfiguracji, wstrzyknięcia złośliwego kodu lub zakłócenia działania usług.
Rekomendacja
Zaleca się aktualizację GitPython do wersji 3.1.54 lub nowszej.
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 versions before 3.1.54 contain an arbitrary file overwrite vulnerability in the Diffable.diff method that fails to validate git options passed through kwargs. Attackers can supply the --output argument via the other parameter or output kwarg to write patch content to attacker-chosen file paths at process privilege level.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

