# CVE-2026-47764: PDM path traversal in wheel installation via write_to_fs

Source: https://junglewise.ai/threats/cve-2026-47764-pdm-path-traversal-in-wheel-installation-via-write-to-fs  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-04. Updated: 2026-06-10  
License: CC BY 4.0 with a link back

CVE-2026-47764 · Severity: high · CVSS 4 · Published 2026-08-04

PDM is a Python package and dependency manager used by developers to install and manage software libraries. A vulnerability in its installation process allows a specially crafted malicious package (wheel) to write files to arbitrary locations on a user's computer. This could allow an attacker to overwrite sensitive system files or configuration settings when a user installs a compromised library.

Technologies: [pdm (PyPI)](https://junglewise.ai/threats/technologies/pdm). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2026-47764 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-47764 being exploited in the wild.

**How severe is CVE-2026-47764?** High severity, with a CVSS score of 4, published 4 August 2026.

**Which products and versions are affected?** pdm (PyPI) <= 2.22.4, ECOSYSTEM:introduced=0,fixed=2.27.0.

**Is there a fix for CVE-2026-47764?** Yes. pdm (PyPI): upgrade to 2.27.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-47764 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-47764?** Check whether you run pdm (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- pdm (PyPI): upgrade to 2.27.0 or later

  ```sh
  pip install "pdm>=2.27.0"
  ```


## Technical details

A path traversal vulnerability exists in PDM's installer due to an insecure override of the `InstallDestination.write_to_fs()` method in `src/pdm/installers/installers.py`. The implementation replaces the secure `_path_with_destdir()` validation (which uses `Path.resolve()` and `is_relative_to()`) with a bare `os.path.join()` call that lacks path validation. An attacker can exploit this by distributing a malicious Python wheel containing file paths with traversal sequences (e.g., `../../`). When a user installs the package, PDM will write files to arbitrary locations on the filesystem. The issue is addressed in version 2.27.0.

## Affected products

- pdm-project pdm <= 2.22.4

## Identifiers

- CVE-2026-47764
- GHSA-78v8-vpjp-cjqh
- PYSEC-2026-2861

## Timeline

- 2026-05-21: disclosed
- 2026-05-21: patched: Fixed in version 2.27.0
- 2026-06-10: advisory

## References

- [https://github.com/pdm-project/pdm/security/advisories/GHSA-78v8-vpjp-cjqh](https://github.com/pdm-project/pdm/security/advisories/GHSA-78v8-vpjp-cjqh)
- [https://github.com/pdm-project/pdm/pull/3787](https://github.com/pdm-project/pdm/pull/3787)
- [https://github.com/pdm-project/pdm/releases/tag/2.27.0](https://github.com/pdm-project/pdm/releases/tag/2.27.0)
- [https://api.github.com/repos/pdm-project/pdm/security-advisories/GHSA-78v8-vpjp-cjqh](https://api.github.com/repos/pdm-project/pdm/security-advisories/GHSA-78v8-vpjp-cjqh)

## Related threats

- [pdm-project PDM code execution via project-local plugins](https://junglewise.ai/threats/cve-2026-47781-pdm-project-pdm-code-execution-via-project-local-plugins)
- [pdm-project PDM symlink following in project-local config writes](https://junglewise.ai/threats/cve-2026-47763-pdm-project-pdm-symlink-following-in-project-local-config-writes)
- [PYSEC-2026-1763 - PDM Trojan Lockfile](https://junglewise.ai/threats/cve-2023-45805-pdm-trojan-lockfile)
