---
id: CVE-2026-47764
title: >-
  pdm is a Python package and dependency manager supporting the latest PEP
  standards
summary: >-
  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 overr…
severity: high
cwe:
  - CWE-22
vendor: pdm
product: pdm
affected:
  - pdm <= 2.22.4
patched:
  - pdm 2.27.0
published: '2026-08-04'
updated: '2026-09-08'
sourceUpdated: '2026-09-08T20:51:43.490'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-47764'
references:
  - url: 'https://github.com/pdm-project/pdm/releases/tag/2.27.0'
    label: security-advisories@github.com
  - url: 'https://github.com/pdm-project/pdm/security/advisories/GHSA-78v8-vpjp-cjqh'
    label: security-advisories@github.com
  - url: 'https://github.com/pdm-project/pdm/pull/3787'
  - url: 'https://github.com/advisories/GHSA-78v8-vpjp-cjqh'
tags:
  - nvd
  - ghsa
  - pip
epss: 0.00148
epssPercentile: 0.04399
aliases:
  - GHSA-78v8-vpjp-cjqh
ecosystem: pip
ingestedAt: '2026-07-07T15:41:59.533Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-47764)

Affected packages:

- `pdm <= 2.22.4`

Patched in:

- `pdm 2.27.0`

Source: https://github.com/advisories/GHSA-78v8-vpjp-cjqh
