PT-2026-48600 · Pypi · Pdm
CVE-2026-47763
·
Published
2026-06-10
·
Updated
2026-08-05
CVSS v4.0
6.8
Medium
| Vector | AV: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 -lcommand is a primary vector. - Vulnerable Parameters or Variables: The
pdm.toml,.pdm-python, and.python-versionfiles act as sinks. - Function Names: The vulnerability involves
Config. init ()andsave config(), as well as code withinsrc/pdm/project/config.py,src/pdm/project/core.py, andsrc/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
Affected Products
Pdm