PT-2026-48600 · Pypi · Pdm

CVE-2026-47763

·

Published

2026-06-10

·

Updated

2026-08-05

CVSS v4.0

6.8

Medium

VectorAV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Name of the Vulnerable Software and Affected Versions PDM versions prior to 2.28.0-1.1
Description PDM writes project-local state and configuration files without symlink protection, allowing a malicious repository to use symlinks to overwrite files outside the repository root. This creates an arbitrary file clobber primitive based on the privileges of the user running the command. The issue occurs because project-local file sinks are treated as trusted regular files and are written without symlink checks or guarded atomic replacement.
Technical details include:
  • API Endpoints: The pdm config -l command is a primary vector.
  • Vulnerable Parameters or Variables: The pdm.toml, .pdm-python, and .python-version files act as sinks.
  • Function Names: The vulnerability involves Config. init () and save config(), as well as code within src/pdm/project/config.py, src/pdm/project/core.py, and src/pdm/cli/commands/use.py.
For the pdm.toml file to be overwritten, the target file must already contain parseable TOML data; otherwise, the process fails during the load step. This constraint does not apply to .pdm-python or .python-version files.
Recommendations Update PDM to version 2.28.0-1.1 or later. As a temporary mitigation, avoid running PDM commands within repositories from untrusted sources. Restrict the use of the pdm config -l command in environments with elevated privileges until the update is applied.

Exploit

Fix

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-47763
GHSA-GHQ2-5C67-FPRM
OPENSUSE-SU-2026:11124-1
OPENSUSE-SU-2026:21161-1
PYSEC-2026-2862

Affected Products

Pdm