CVE-2026-47764
📛 CVE Title
pdm: Path traversal in wheel installation via overridden write_to_fs
Description
pdm is a Python package and dependency manager supporting the latest PEP standards. Versions prior to 2.27.0 are vulnerable to path traversal through write_to_fs. InstallDestination.write_to_fs() in src/pdm/installers/installers.py overrides the base class to add symlink/hardlink support but replaces the safe _path_with_destdir() (which validates via Path.resolve() + is_relative_to()) with a bare os.path.join() that performs no path validation. A malicious wheel with traversal entries can write arbitrary files. This issue has been fixed in version 2.27.0.
Overview
- State
- PUBLISHED
- Assigner (CNA)
- GitHub_M
- CVSS severity
- HIGH
- CVSS score
- 8.4 / 10
- CVSS vector
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- Effective score
- 8.4 / 10 HIGH source: CNA overview
- CWE(s)
-
CWE-22 - Reserved
- 2026-05-19
- Published
- 2026-08-04 17:57 UTC
- Last updated
- 2026-08-04 17:57 UTC
- Source
- https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/47xxx/CVE-2026-47764.json
- Linked Threat
- CVE-2026-47764 — pdm: Path traversal in wheel installation via overridden write_to_fs
Affected products (1)
| Vendor | Product | Versions | Platforms |
|---|---|---|---|
| pdm-project | pdm |
< 2.27.0 (affected)
|
— |
Vendor references (2)
References embedded in the original CVE record by the assigning CNA.
- https://github.com/pdm-project/pdm/security/advisories/GHSA-78v8-vpjp-cjqh x_refsource_CONFIRM
- https://github.com/pdm-project/pdm/releases/tag/2.27.0 x_refsource_MISC
Web references (0)
DuckDuckGo results ranked by threat-intel / vendor advisory domains. Generated by the 🔎 Find references (web) button above — same flow as the Remediations search.
No web references attached yet.
AI Forensic Analysis
Only Available for Registered Users. Sign in to view.
Raw JSON
The full cvelistV5 record. Download as CVE-2026-47764.json.
{
"containers": {
"cna": {
"affected": [
{
"product": "pdm",
"vendor": "pdm-project",
"versions": [
{
"status": "affected",
"version": "< 2.27.0"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "pdm is a Python package and dependency manager supporting the latest PEP standards. Versions prior to 2.27.0 are vulnerable to path traversal through write_to_fs. InstallDestination.write_to_fs() in src/pdm/installers/installers.py overrides the base class to add symlink/hardlink support but replaces the safe _path_with_destdir() (which validates via Path.resolve() + is_relative_to()) with a bare os.path.join() that performs no path validation. A malicious wheel with traversal entries can write arbitrary files. This issue has been fixed in version 2.27.0."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "LOCAL",
"baseScore": 8.4,
"baseSeverity": "HIGH",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "ACTIVE",
"vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "HIGH",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-04T17:57:15.756Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/pdm-project/pdm/security/advisories/GHSA-78v8-vpjp-cjqh",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/pdm-project/pdm/security/advisories/GHSA-78v8-vpjp-cjqh"
},
{
"name": "https://github.com/pdm-project/pdm/releases/tag/2.27.0",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/pdm-project/pdm/releases/tag/2.27.0"
}
],
"source": {
"advisory": "GHSA-78v8-vpjp-cjqh",
"discovery": "UNKNOWN"
},
"title": "pdm: Path traversal in wheel installation via overridden write_to_fs"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-47764",
"datePublished": "2026-08-04T17:57:15.756Z",
"dateReserved": "2026-05-19T22:36:16.881Z",
"dateUpdated": "2026-08-04T17:57:15.756Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}