CVE-2026-29509
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 — wyżej niż 20% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Patool przed wersją 4.0.5 umożliwia przejście do dowolnego katalogu (path traversal) w funkcji safe_extract() w pliku patoolib/programs/py_tarfile.py, gdy działa na Pythonie przed wersją 3.12. Problem wynika z użycia os.path.commonprefix() do porównywania ścieżek na poziomie znaków zamiast na poziomie katalogów, co pozwala ominąć sprawdzenie containment check. Atakujący może dostarczyć złośliwe archiwum ze specjalnie spreparowanymi ścieżkami członków archiwum, aby zapisać dowolne pliki.
Ocena ryzyka
Ryzyko polega na możliwości nadpisania lub utworzenia dowolnych plików w systemie ofiary, co może prowadzić do przejęcia kontroli nad aplikacją lub systemem, w zależności od kontekstu działania Patool.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę Patool do wersji 4.0.5 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy używać Pythona w wersji 3.12 lub nowszej, która zawiera poprawki bezpieczeństwa dla tej funkcji.
Oryginalny opis (angielski, źródło NVD)
Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.

