Podatności pdm
3 znanych podatności CVE w pdm, przetłumaczonych i ocenionych.
- 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-47764Wysokie
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.
- 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.

