CVE-2026-114097
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
Dulwich w wersjach od 0.23.1 do 1.2.8 zawiera podatność path traversal w CommitFilter._apply_index_filter(), która pozwala atakującym zapisywać pliki poza katalogiem roboczym poprzez symlinki utrzymujące się między commitami. Atakujący może stworzyć repozytorium, w którym symlink przodka przekierowuje zapisy plików potomka podczas filter_branch, umożliwiając wykonanie kodu poprzez zapis do .git/hooks.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolny kod w kontekście użytkownika przetwarzającego repozytorium, co prowadzi do przejęcia systemu. Może to skutkować kradzieżą danych i dalszą eskalacją.
Rekomendacja
Zaktualizuj Dulwich do wersji 1.2.8 lub nowszej. Unikaj przetwarzania niezaufanych repozytoriów bez odpowiedniej izolacji.
Inne podatności w Dulwich
Zobacz wszystkie- CVE-2026-114095Średnie
Dulwich przed wersją 1.2.9 zawiera podatność na odmowę usługi w Pack.resolve_object, która pozwala atakującym wywołać nieskończoną rekurencję poprzez samoodwołujące się obiekty OFS_DELTA. Atakujący może dostarczyć złośliwy plik packfile z delta_offset równym 0, aby wyczerpać CPU podczas operacji clone, fetch lub cat-file.
- CVE-2015-0838Wysokie
Przepełnienie bufora w funkcji apply_delta w implementacji C w pliku _pack.c w Dulwich przed wersją 0.9.9 umożliwia zdalnym atakującym wykonanie dowolnego kodu za pomocą spreparowanego pliku pakietu.
- CVE-2014-9706Wysokie
Funkcja build_index_from_tree w pliku index.py w Dulwich przed wersją 0.9.9 umożliwia zdalnym atakującym wykonanie dowolnego kodu poprzez commit z ścieżką katalogu zaczynającą się od .git/, co nie jest prawidłowo obsługiwane podczas wypisywania drzewa roboczego.
- CVE-2017-16228Krytyczne
Dulwich przed wersją 0.18.5, przy użyciu podprocesu SSH, pozwala zdalnym atakującym na wykonywanie dowolnych poleceń poprzez URL SSH z początkowym znakiem minus w nazwie hosta.
- CVE-2026-114098Wysokie
Dulwich w wersjach od 0.22.5 do 1.2.8 zawiera podatność path traversal w stash.py pop(), która pozwala atakującym zapisywać dowolne pliki poza drzewem roboczym poprzez symlinki katalogów pośrednich. Atakujący może stworzyć złośliwe repozytorium, którego przywrócony stash zapisuje ładunek do .git/hooks/post-checkout, osiągając wykonanie kodu przy następnym checkout.
- CVE-2026-114096Wysokie
Dulwich w wersjach od 0.24.0 do 1.2.8 zawiera podatność polegającą na podążaniu za symlinkami w porcelain.checkout(paths=[...]), która pozwala atakującym zapisywać dowolne pliki poprzez użycie surowego os.open bez O_NOFOLLOW. Atakujący może stworzyć repozytorium, w którym symlink w drzewie roboczym wskazuje na .git/hooks/post-checkout, tak że przywrócenie pliku z tagu zapisuje złośliwy hook umożliwiający wykonanie kodu.
- CVE-2026-114094Wysokie
Dulwich w wersjach przed 1.2.9 nie waliduje prefiksów liter dysków DOS w elementach ścieżek drzewa Git w systemie Windows, co pozwala na zapis dowolnych plików. Atakujący może stworzyć złośliwe repozytorium z wpisem drzewa o nazwie 'C:', który omija walidację NTFS i zapisuje pliki poza drzewem roboczym, osiągając zdalne wykonanie kodu.
- CVE-2026-38974Średnie
W bibliotece Dulwich w wersji do 1.1.0 w pliku contrib/paramiko_vendor.py brakuje weryfikacji klucza hosta SSH. Oznacza to, że podczas połączeń SSH nie jest sprawdzane, czy klucz publiczny serwera jest zaufany.
- CVE-2026-52726Wysokie
Dulwich w wersjach od 0.23.2 do 1.2.5 nie waliduje ścieżek submodułów podczas klonowania z rekurencją. Atakujący może umieścić złośliwy plik .gitmodules i drzewo gitlink ze ścieżką .git/hooks, co prowadzi do zapisu plików do katalogu .git/hooks ofiary. Wykonywalne pliki są następnie uruchamiane przy każdym wywołaniu haka, co umożliwia zdalne wykonanie kodu.
- CVE-2026-47734Średnie
Podatność w bibliotece Dulwich (wersje 0.1.0 do 1.2.4) pozwala klientowi z dostępem do pusha na wysłanie spreparowanego, małego pakietu (ok. 174 bajtów), który deklaruje ogromny rozmiar w nagłówku delty. Podczas przetwarzania przez funkcję add_thin_pack/apply_delta dochodzi do alokacji setek MB pamięci, co może prowadzić do wyczerpania zasobów serwera.
Oryginalny opis (angielski, źródło NVD)
Dulwich from 0.23.1 before 1.2.8 contains a path traversal vulnerability in CommitFilter._apply_index_filter() that allows attackers to write files outside the working directory via symlinks persisting between commits. Attackers can craft a repository where an ancestor commit's symlink redirects a descendant commit's file writes during filter_branch, enabling code execution by writing into .git/hooks.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

