Description
PDM is a Python package and dependency manager. In versions up to and including 2.26.9, PDM automatically loads project-local plugins from a .pdm-plugins directory during initialization, allowing an attacker-controlled file in an untrusted repository checkout to execute arbitrary Python code before any command is parsed. This happens because load_plugins() runs during Core.init() and adds .pdm-plugins via site.addsitedir(), which processes .pth files and immediately executes any line beginning with import, so the code runs with the privileges of the user invoking pdm and even a benign command such as pdm --version triggers it (making the impact strongest in CI, automation, and privileged contexts). The issue is fixed in version 2.27.0.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| pdm-project | pdm | < 2.27.0 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | pdm | 2.27.0-1 | — |
| Debian 13 | pdm | No fix yet | — |
| Debian 12 | pdm | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | pdm | No fix yet | — |
| Ubuntu 26.04 LTS | pdm | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | python-pdm | 2.28.0-1.1 | openSUSE-SU-2026:11124-1 |
| openSUSE Leap 16.0 | python-pdm | 2.22.3-bp160.2.1 | openSUSE-SU-2026:21161-1 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | pdm | < 2.27.0 | 2.27.0 | GHSA-qq6c-99pv-prvf |
Advisories 2
- openSUSE-SU-2026:21161-1 Security update for python-pdm SUSE / openSUSE Security Updates · Jun 30, 2026
- openSUSE-SU-2026:11124-1 python311-pdm-2.28.0-1.1 on GA media SUSE / openSUSE Security Updates · Jun 26, 2026