CVE-2026-42305
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 47 - wyżej niż 47% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Dulwich (wersje 0.10.0 do 1.2.4) umożliwia zdalne wykonanie kodu poprzez dowolny zapis pliku podczas klonowania lub pobierania złośliwego repozytorium Git na systemie Windows. Problem wynika z nieprawidłowej walidacji nazw plików w elementach ścieżki, które mogą zawierać znaki interpretowane przez Windows jako strukturalna składnia ścieżki. Dodatkowo, ustawienia zabezpieczeń core.protectNTFS i core.protectHFS były ignorowane z powodu błędów konfiguracji.
Ocena ryzyka
Organizacja narażona jest na przejęcie kontroli nad systemem Windows przez atakującego, który może umieścić złośliwy plik w dowolnej lokalizacji podczas klonowania repozytorium. Nawet użytkownicy systemów POSIX mogą nieświadomie propagować złośliwe drzewo do odbiorców Windows.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę Dulwich do wersji 1.2.5 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy unikać klonowania, pobierania lub sprawdzania niezaufanych repozytoriów za pomocą Dulwich na systemach Windows.
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-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.
- CVE-2026-47712Niskie
Podatność w bibliotece Dulwich (wersje 0.24.0 do 1.2.4) pozwala na zapis pliku łatki poza zamierzonym katalogiem poprzez złośliwy temat commita. Funkcja format_patch używa tematu commita do utworzenia nazwy pliku, a brak sanityzacji znaków takich jak /, \, .. czy : umożliwia ścieżkę traversal.
- CVE-2026-42563Wysokie
Podatność w bibliotece Dulwich (wersje od 0.24.0 do 1.2.4) pozwala na zdalne wykonanie dowolnego kodu. Atakujący może umieścić złośliwą ścieżkę pliku w gałęzi GIT, która po scaleniu przez ofiarę jest wstawiana do polecenia scalającego przez symbol zastępczy %P i wykonywana z użyciem shell=True.
Oryginalny opis (angielski, źródło NVD)
Dulwich is a pure-Python implementation of the Git file formats and protocols. Versions starting with 0.10.0 and prior to 1.2.5 have an arbitrary file write leading to remote code execution when cloning or checking out a malicious Git repository on Windows. Dulwich's path-element validator accepted tree entries whose filenames contained bytes that Windows interprets as structural path syntax. Contributing configuration bugs made matters worse. The core.protectNTFS and core.protectHFS settings were looked up under a wrong option name and so user-set values were silently ignored, and core.protectNTFS only defaulted to true on Windows (Git upstream has defaulted it to true everywhere since CVE-2019-1353). Both have been corrected. Anyone who clones, fetches, or checks out an untrusted repository with Dulwich on Windows - either through the Dulwich CLI, porcelain.clone, or any downstream tool built on Dulwich - is impacted. POSIX clones are not directly exploitable (on POSIX \ is a literal filename byte), but a POSIX user can unknowingly propagate a malicious tree to Windows consumers via push or re-publication. This issue is fixed in Dulwich 1.2.5. Users should upgrade to 1.2.5 or later. There is no effective pre-patch workaround. On affected versions the core.protectNTFS configuration key was silently ignored, so setting it to true does not mitigate the issue. Users who cannot upgrade should avoid cloning, fetching, or checking out untrusted repositories with Dulwich on Windows. After upgrading the NTFS validator is on by default on every platform, so no additional configuration is required.

