CVE-2026-47764
WysokieCVSS 8.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 5 - wyżej niż 5% wszystkich znanych CVE
Streszczenie
pdm to menedżer pakietów i zależności dla Pythona. Wersje przed 2.27.0 są podatne na path traversal przez write_to_fs. Funkcja InstallDestination.write_to_fs() w src/pdm/installers/installers.py nadpisuje klasę bazową, aby dodać obsługę dowiązań symbolicznych/twardych, ale zastępuje bezpieczną metodę _path_with_destdir() (która waliduje przez Path.resolve() + is_relative_to()) zwykłym os.path.join() bez walidacji ścieżki. Złośliwy wheel z wpisami traversal może zapisywać dowolne pliki.
Ocena ryzyka
Ryzyko polega na możliwości zapisu dowolnych plików w systemie przez złośliwy pakiet, co może prowadzić do przejęcia kontroli nad systemem lub modyfikacji krytycznych plików.
Rekomendacja
Zaleca się aktualizację pdm do wersji 2.27.0 lub nowszej, która zawiera poprawkę eliminującą podatność.
Inne podatności w pdm
Zobacz wszystkie- CVE-2026-47781Wysokie
PDM to menedżer pakietów i zależności dla Pythona. W wersjach do 2.26.9 włącznie, PDM automatycznie ładuje lokalne wtyczki projektu z katalogu .pdm-plugins podczas inicjalizacji, co pozwala plikowi kontrolowanemu przez atakującego w niezaufanym repozytorium na wykonanie dowolnego kodu Pythona przed przetworzeniem jakiegokolwiek polecenia. Dzieje się tak, ponieważ load_plugins() działa podczas Core.init() i dodaje .pdm-plugins przez site.addsitedir(), który przetwarza pliki .pth i natychmiast wykonuje każdą linię zaczynającą się od import, więc kod wykonuje się z uprawnieniami użytkownika wywołującego pdm, a nawet proste polecenie takie jak pdm --version je wyzwala (co ma największy wpływ w CI, automatyzacji i kontekstach uprzywilejowanych).
- CVE-2026-47763Średnie
pdm, menedżer pakietów i zależności dla Pythona, przed wersją 2.27.0 zapisuje kilka plików stanu lub konfiguracji lokalnych projektu bez ochrony przed dowiązaniami symbolicznymi. Złośliwe repozytorium może umieścić te pliki jako dowiązania symboliczne, a lokalne operacje PDM mogą nadpisać cele dowiązań, co umożliwia dowolne nadpisywanie plików z uprawnieniami wywołującego użytkownika.
Oryginalny opis (angielski, źródło NVD)
pdm is a Python package and dependency manager supporting the latest PEP standards. Versions prior to 2.27.0 are vulnerable to path traversal through write_to_fs. InstallDestination.write_to_fs() in src/pdm/installers/installers.py overrides the base class to add symlink/hardlink support but replaces the safe _path_with_destdir() (which validates via Path.resolve() + is_relative_to()) with a bare os.path.join() that performs no path validation. A malicious wheel with traversal entries can write arbitrary files. This issue has been fixed in version 2.27.0.

