CVE-2026-114095
ŚrednieCVSS 6.5Streszczenie
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.
Ocena ryzyka
Operacje Git takie jak clone, fetch czy cat-file mogą zostać zablokowane przez wyczerpanie CPU, powodując odmowę usługi. Ryzyko dotyczy systemów przetwarzających niezaufane repozytoria lub pliki packfile.
Rekomendacja
Zaktualizuj Dulwich do wersji 1.2.9 lub nowszej. Unikaj przetwarzania niezaufanych plików packfile do czasu aktualizacji.
Inne podatności w Dulwich
Zobacz wszystkie- 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-114097Wysokie
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.
- 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 before 1.2.9 contains a denial of service vulnerability in Pack.resolve_object that allows attackers to cause infinite recursion via self-referential OFS_DELTA objects. Attackers can supply a malicious packfile with an OFS_DELTA delta_offset of 0 to exhaust CPU during clone, fetch, or cat-file operations.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

