Every CVE Search/ Get API key

CVE-2026-47764

pdm: Path traversal in wheel installation via overridden write_to_fs

8.4 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Active

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.20%Up 0.1 points since Jun 12, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.4

pdm: Path traversal in wheel installation via overridden write_to_fs

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.

Record
CVE-2026-47764
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-22
Updated
2026-11-02
EUVDEUVD-2026-52854 8.4

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.

Record
EUVD-2026-52854
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-78v8-vpjp-cjqh 7.1

PDM wheel installation leads to Path Traversal via overridden 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. Same class as Poetry CVE-2026-34591. Fix ready at: https://github.com/pdm-project/pdm/pull/3787.

Record
GHSA-78v8-vpjp-cjqh
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-22
Updated
2026-11-02
NVD 8.4

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.

Record
CVE-2026-47764
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-22
Updated
2026-11-02
OSV 8.4

pdm: Path traversal in wheel installation via overridden write_to_fs

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.

Record
CVE-2026-47764
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-22
Updated
2026-11-02
OSVDEBIAN-CVE-2026-47764 8.4

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.

Record
DEBIAN-CVE-2026-47764
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Updated
2026-11-02
Show 5 moreShow less
OSVGHSA-78v8-vpjp-cjqh 7.1

PDM wheel installation leads to Path Traversal via overridden 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. Same class as Poetry CVE-2026-34591. Fix ready at: https://github.com/pdm-project/pdm/pull/3787.

Record
GHSA-78v8-vpjp-cjqh
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-22
Updated
2026-11-02
OSVPYSEC-2026-2861 7.1

PDM wheel installation leads to Path Traversal via overridden 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. Same class as Poetry CVE-2026-34591. Fix ready at: https://github.com/pdm-project/pdm/pull/3787.

Record
PYSEC-2026-2861
CVSS 4.0
7.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVUBUNTU-CVE-2026-47764 8.4

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.

Record
UBUNTU-CVE-2026-47764
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVopenSUSE-SU-2026:11124-1 No score

python311-pdm-2.28.0-1.1 on GA media

These are all security issues fixed in the python311-pdm-2.28.0-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11124-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:21161-1 No score

Security update for python-pdm

This update for python-pdm fixes the following issues:

Changes in python-pdm:

  • CVE-2026-47763: Do not follow symlinks when writing config files (bsc#1268384)
  • CVE-2026-47763: Do not write to paths outside the scheme dir (bsc#1268385)
  • CVE-2026-47781: Update plugin installation path to use project_plugins_dir (bsc#1268386)
Record
openSUSE-SU-2026:21161-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
pdm
PyPI
through 2.22.4
2.27.0
pdm
Debian:12
All versions, plus listed versions
2.2.1+ds1-12.2.1+ds1-22.20.0.post1+ds1-12.20.0.post1+ds1-22.20.1+ds1-1
Show 13 moreShow less
2.20.1+ds1-22.23.1-12.23.1-22.23.1-32.23.1-42.26.2-12.26.6-12.27.0-12.28.0-12.28.1-12.29.0-12.29.2-12.29.3-1
None known
pdm
Debian:13
All versions, plus listed versions
2.20.1+ds1-22.23.1-12.23.1-22.23.1-32.23.1-4
Show 8 moreShow less
2.26.2-12.26.6-12.27.0-12.28.0-12.28.1-12.29.0-12.29.2-12.29.3-1
None known
pdm
Debian:14
before 2.27.0-1, plus listed versions
2.20.1+ds1-22.23.1-12.23.1-22.23.1-32.23.1-42.26.2-12.26.6-1
2.27.0-1
pdm
PyPI
before 2.27.0, plus listed versions
0.0.00.0.10.0.30.0.40.0.5
Show 45 moreShow less
0.0.60.1.00.1.10.1.20.10.00.10.10.10.20.11.00.12.00.12.10.12.20.12.30.2.00.2.10.2.20.2.30.2.40.2.50.2.60.3.00.3.10.3.20.4.00.4.10.4.20.5.00.6.00.6.10.6.20.6.30.6.40.6.50.7.00.7.10.8.00.8.10.8.20.8.30.8.40.8.50.8.60.8.70.9.00.9.10.9.2
2.27.0
pdm
Ubuntu:26.10
All versions, plus listed versions
2.23.1-42.27.0-12.28.0-12.28.1-1
None known
pdm
Ubuntu:26.04:LTS
All versions, plus listed versions
2.20.1+ds1-22.23.1-4
None known
python-pdm
openSUSE:Tumbleweed
From an advisory covering 3 CVEs
before 2.28.0-1.1
2.28.0-1.1
python-pdm
openSUSE:Leap 16.0
From an advisory covering 3 CVEs
before 2.22.3-bp160.2.1
2.22.3-bp160.2.1

History

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-47764 is a high vulnerability (CVSS 8.4) in Pdm-project Pdm, published June 10, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.20%, the 9th percentile. Fixed in pdm 2.27.0.

References

Show 11 moreShow less
This page doesn't list everything

Left out here: 197 versions. The JSON record has them.

MoveEnter Open