CVE-2026-47781CWE-829CWE-94code-injection

CVE-2026-47781

published August 4, 2026

CVSS
8.4
EPSS
0%
Percentile
7.9
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS
8.4 · NONE
CVSS v4.0
Not supplied
EPSS
0.00187 · 7.9th percentile
Weaknesses
CWE-829 · Inclusion of Functionality from Untrusted Control Sphere; CWE-94 · Improper Control of Generation of Code ('Code Injection')
Published
2026-08-04T23:16Z
References (3)
EPSS history
Timeline
  • 04 AUG 18:42Z
    pdm: Project-Controlled `.pdm-plugins` Content Executes Before CLI Parsing
    cvelistv5