Read the docs
TI-2026-35274 Aliases CVE-2026-47781GHSA-qq6c-99pv-prvf

pdm: Project-Controlled `.pdm-plugins` Content Executes Before CLI Parsing

Priority HIGH 78CWE-829Published · Updated

Key facts

Attack vector
Local
Privileges required
None
User interaction
Active
Attack complexity
Low
Attack requirements
None
Impact type
Code execution
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-829.

Summary

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.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00187 8th percentileScored 2026-11-07
Fix Fixed pdm (pdm-project): 2.27.0pdm (PyPI): 2.27.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
pdm-projectpdmbefore 2.27.02.27.0Patch availableCNA
—pdm (PyPI)before 2.27.02.27.0Patch availableGHSA-qq6c-99pv-prvf
  • pdm Vendorpdm-project Affected before 2.27.0 Fixed in 2.27.0 Patch available CNA
  • pdm (PyPI) Vendor— Affected before 2.27.0 Fixed in 2.27.0 Patch available GHSA-qq6c-99pv-prvf

Remediation

  • Fix · CNA pdm (pdm-project) Fixed in 2.27.0
  • Fix · GHSA-qq6c-99pv-prvf pdm (PyPI) Fixed in 2.27.0 Advisory →

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-47781
  2. 2026-10-03 Alias added: GHSA-qq6c-99pv-prvf

References

  • TI-2026-35260 pdm: Project-Local State and Config Writes Follow Symlinks CVSS 4.0MEDIUM 6.8
  • TI-2026-35261 pdm: Path traversal in wheel installation via overridden write_to_fs CVSS 4.0HIGH 8.4

Sources