—
PYSEC-2026-2861
PDM wheel installation leads to Path Traversal via overridden write_to_fs
Quick fix
PYSEC-2026-2861 — pdm: upgrade to the fixed version with the command below.
pip install --upgrade 'pdm>=2.27.0'Details
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. Same class as Poetry CVE-2026-34591. Fix ready at: https://github.com/pdm-project/pdm/pull/3787.
Are you affected?
Enter the version of the package you're using.
Affected packages
References
- https://github.com/pdm-project/pdm/security/advisories/GHSA-78v8-vpjp-cjqh[WEB]
- https://github.com/pdm-project/pdm/pull/3787[WEB]
- https://github.com/pdm-project/pdm[PACKAGE]
- https://github.com/pdm-project/pdm/releases/tag/2.27.0[WEB]
- https://pypi.org/project/pdm[PACKAGE]
- https://github.com/advisories/GHSA-78v8-vpjp-cjqh[ADVISORY]
- https://nvd.nist.gov/vuln/detail/CVE-2026-47764[ADVISORY]