Description
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.
Published: 2026-08-04
Score: 8.4 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from pdm’s InstallDestination.write_to_fs method replacing secure path validation with a basic join operation, allowing a wheel that contains path traversal entries to write files arbitrarily. This omission enables an attacker to place files anywhere on the filesystem during a wheel install, potentially overwriting critical binaries or dropping malicious code. The weakness is a classic path traversal flaw (CWE‑22) that can lead to full system compromise if exploited.

Affected Systems

The product affected is the pdm package manager from pdm‑project. All versions prior to 2.27.0 are vulnerable. No other vendors or versions are listed as impacted.

Risk and Exploitability

The CVSS score of 8.4 classifies the issue as high severity. EPSS information is not provided, and the vulnerability is not listed in CISA’s KEV catalog, suggesting limited public exploitation data. However, the flaw can be leveraged whenever an attacker can supply a malicious wheel for installation, making the attack vector likely local or based on the trust model of the package source. The lack of path checks means the exploit does not require additional privileges, so any user able to run pdm install could potentially affect the host.

Generated by OpenCVE AI on August 4, 2026 at 19:34 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pdm to version 2.27.0 or later to apply the patch that restores proper path validation.
  • Only install wheels from trusted and verified sources, and consider validating wheel contents (e.g., checksums) before installation.
  • Limit the use of pdm install to users with appropriate privileges and monitor file system changes during package installations to detect unexpected file writes.

Generated by OpenCVE AI on August 4, 2026 at 19:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-78v8-vpjp-cjqh PDM wheel installation leads to Path Traversal via overridden write_to_fs
History

Wed, 05 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 10:45:00 +0000

Type Values Removed Values Added
First Time appeared Pdm-project
Pdm-project pdm
Vendors & Products Pdm-project
Pdm-project pdm

Tue, 04 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Description 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.
Title pdm: Path traversal in wheel installation via overridden write_to_fs
Weaknesses CWE-22
References
Metrics cvssV4_0

{'score': 8.4, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-05T13:47:02.050Z

Reserved: 2026-05-19T22:36:16.881Z

Link: CVE-2026-47764

cve-icon Vulnrichment

Updated: 2026-08-05T13:46:57.187Z

cve-icon NVD

Status : Received

Published: 2026-08-04T19:16:51.093

Modified: 2026-08-05T15:16:50.377

Link: CVE-2026-47764

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T10:19:11Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')