CVE-2026-47781

HIGHPre-NVD 8.48.4—
EchelonGraph scoreMEDIUM confidence

This high-severity CVE scores 8.4 under a secondary CVSS source (NVD's own analysis pending). EPSS exploit probability: 0.1%, top 97% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: epss, secondary
Elevated
8.4EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0.2%CVSS: 8.4Exploit: Elevated riskExposed services: Not assessed

A fix is available — apply it.

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.

CVSS v3
8.4
EG Score
8.4HIGHmedium confidence
EG Risk
69
EG Risk 69/100

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity84% × 45%
Exploitation40% × 40%
Automatability100% × 15%
EPSS PROB
0.2%
EPSS %ILE
7th
KEV
Not listed

Published

June 11, 2026

Last Modified

September 8, 2026

Advisory Details (2)

Auto-updated Aug 4, 2026
🔬 Proof of concept available. Patch available. Sources: github, github_release.
github_release Patch Available

v2.27.0

Patch available: pdm-project/pdm 2.27.0

https://github.com/pdm-project/pdm/releases/tag/2.27.0
githubMentions a patch (unverified)🟡 PoC Available

Project-Controlled `.pdm-plugins` Content Executes Before CLI Parsing · Advisory · pdm-project/pdm · GitHub

https://github.com/pdm-project/pdm/security/advisories/GHSA-qq6c-99pv-prvf

Vendor Advisories for CVE-2026-47781(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(4 across 4 ecosystems)
Debian:12(1)
PackageVulnerable rangeFix by version rangeDependents
pdm2.2.1+ds1-1 ... 2.29.0-1 (16 versions)
  • every version on: no fix on record
—
Debian:13(1)
PackageVulnerable rangeFix by version rangeDependents
pdm2.20.1+ds1-2 ... 2.29.0-1 (11 versions)
  • every version on: no fix on record
—
Debian:14(1)
PackageVulnerable rangeFix by version rangeDependents
pdm2.20.1+ds1-2 ... 2.26.6-1 (7 versions)
  • every version up to 2.27.0-1: fixed in 2.27.0-1
—
PyPI(1)
PackageVulnerable rangeFix by version rangeDependents
pdm0.0.0 ... 2.9.3 (247 versions)
  • every version up to 2.27.0: fixed in 2.27.0
—

Weakness Classification(2)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 6× in last 7d / 20× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-10-09 20:07 UTCEPSS rescore
  2. 2026-10-08 17:12 UTCEPSS rescore
  3. 2026-10-07 23:48 UTCEPSS rescore
  4. 2026-10-06 15:18 UTCEPSS rescore
  5. 2026-10-05 17:43 UTCEPSS rescore
  6. 2026-10-04 23:22 UTCEPSS rescore
  7. 2026-10-03 14:25 UTCEPSS rescore
  8. 2026-10-03 08:39 UTCOSV refresh
  9. 2026-10-01 19:50 UTCEPSS rescore
  10. 2026-09-30 15:03 UTCEPSS rescore
  11. 2026-09-28 13:51 UTCEPSS rescore
  12. 2026-09-27 13:48 UTCEPSS rescore
  13. 2026-09-26 15:59 UTCEPSS rescore
  14. 2026-09-26 00:27 UTCEPSS rescore
  15. 2026-09-23 17:53 UTCEPSS rescore
  16. 2026-09-20 20:16 UTCEPSS rescore
  17. 2026-09-18 19:28 UTCEPSS rescore
  18. 2026-09-16 14:08 UTCEPSS rescore
  19. 2026-09-14 04:10 UTCEG score recompute
  20. 2026-09-13 16:47 UTCEPSS rescore
  21. 2026-09-10 09:35 UTCEPSS rescore
  22. 2026-09-08 23:00 UTCEG score recompute
  23. 2026-09-08 22:00 UTCEPSS rescore
  24. 2026-09-07 16:01 UTCEPSS rescore
  25. 2026-09-06 13:47 UTCEPSS rescore
Show 53 more
  1. 2026-09-04 05:06 UTCEPSS rescore
  2. 2026-09-01 13:54 UTCEPSS rescore
  3. 2026-08-31 00:05 UTCEG score recompute
  4. 2026-08-30 19:17 UTCEPSS rescore
  5. 2026-08-30 01:22 UTCEPSS rescore
  6. 2026-08-28 21:41 UTCEPSS rescore
  7. 2026-08-27 14:25 UTCEPSS rescore
  8. 2026-08-25 13:49 UTCEPSS rescore
  9. 2026-08-25 00:06 UTCEG score recompute
  10. 2026-08-23 10:43 UTCEG score recompute
  11. 2026-08-23 00:19 UTCEPSS rescore
  12. 2026-08-21 23:49 UTCEPSS rescore
  13. 2026-08-21 10:35 UTCEG score recompute
  14. 2026-08-20 22:55 UTCEPSS rescore
  15. 2026-08-20 08:51 UTCEG score recompute
  16. 2026-08-19 17:04 UTCEPSS rescore
  17. 2026-08-19 14:54 UTCEG score recompute
  18. 2026-08-18 13:48 UTCEPSS rescore
  19. 2026-08-17 13:47 UTCEPSS rescore
  20. 2026-08-17 03:42 UTCEG score recompute
  21. 2026-08-16 14:56 UTCEPSS rescore
  22. 2026-08-16 14:52 UTCEG score recompute
  23. 2026-08-16 02:14 UTCEPSS rescore
  24. 2026-08-15 13:11 UTCEG score recompute
  25. 2026-08-15 01:30 UTCEPSS rescore
  26. 2026-08-13 22:14 UTCEG score recompute
  27. 2026-08-13 22:00 UTCEPSS rescore
  28. 2026-08-12 14:36 UTCEG score recompute
  29. 2026-08-12 13:51 UTCEPSS rescore
  30. 2026-08-12 01:40 UTCEG score recompute
  31. 2026-08-11 12:49 UTCEG score recompute
  32. 2026-08-11 00:00 UTCEPSS rescore
  33. 2026-08-09 22:14 UTCEG score recompute
  34. 2026-08-09 13:46 UTCEPSS rescore
  35. 2026-08-08 20:34 UTCEG score recompute
  36. 2026-08-08 16:37 UTCEPSS rescore
  37. 2026-08-07 18:51 UTCEG score recompute
  38. 2026-08-06 17:11 UTCEG score recompute
  39. 2026-08-06 13:47 UTCEPSS rescore
  40. 2026-08-06 04:21 UTCEG score recompute
  41. 2026-08-05 19:17 UTCEPSS rescore
  42. 2026-08-05 15:31 UTCEG score recompute
  43. 2026-08-05 14:38 UTCEG score recompute
  44. 2026-08-04 19:26 UTCEG score recompute
  45. 2026-08-04 18:56 UTCEG score recompute▲ 8.40
  46. 2026-08-04 18:55 UTCMITRE cvelistV5CVSS v3 → 8.4 · CVSS v4 → 8.4
  47. 2026-07-30 09:41 UTCEG score recompute
  48. 2026-07-26 20:54 UTCEG score recompute
  49. 2026-07-23 03:17 UTCEG score recompute
  50. 2026-06-14 23:18 UTCEPSS rescore
  51. 2026-06-13 23:00 UTCEPSS rescore
  52. 2026-06-12 23:12 UTCEPSS rescore
  53. 2026-06-11 13:56 UTCEG score recompute

Frequently asked(5)

What is CVE-2026-47781?
CVE-2026-47781 is a high vulnerability published on June 11, 2026. 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…
When was CVE-2026-47781 disclosed?
CVE-2026-47781 was first published on June 11, 2026, with the most recent update on September 8, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-47781 actively exploited?
CVE-2026-47781 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.2% probability of exploitation in the next 30 days (7th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-47781?
CVE-2026-47781 has a CVSS base score of 8.4 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2026-47781?
A fix for CVE-2026-47781 is available: update to the fixed version the vendor names in its advisory. The vendor advisories EchelonGraph has for CVE-2026-47781 are linked in the Vendor Advisories panel on this page.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-47781

Explore →

Is Your Infrastructure Affected by CVE-2026-47781?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.