Skip to main content

pnpm CVE-2026-82393

| EUVDEUVD-2026-68883 HIGH
Path Traversal (CWE-22)
2026-08-31 GitHub_M GHSA-vq4v-j7r6-jq4m
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Publish malicious scoped path-traversal package
  2. Delivery
    Victim runs pnpm install on affected project
  3. Exploit
    Scoped name bypasses slash validation in pickPackage.ts
  4. Execution
    Unvalidated name joins into arbitrary filesystem path
  5. Persist
    Package contents overwrite shell startup or Git hooks
  6. Impact
    Attacker code executes at next trigger

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The victim must run pnpm install or any pnpm command triggering dependency resolution against a project whose dependency graph includes a package with a scoped name containing .. path-traversal sequences. This can originate from a package.json declaration or from a crafted pnpm-lock.yaml; the regression tests in PR #12872 confirm the lockfile vector succeeds even under --frozen-lockfile --trust-lockfile, meaning trust-lockfile mode does not prevent exploitation. The --ignore-scripts flag provides no protection because the file overwrite occurs through the extraction pipeline, not npm lifecycle scripts. Exploitation is limited to pnpm v10 before 10.34.5 and v11 before 11.11.0; npm and yarn are not affected by this validator gap. The attacker must control or compromise the source of a dependency in the victim's graph, either by publishing to a registry the victim trusts or by poisoning a lockfile committed to the project.

Impact

The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H) scores 7.5. AC:H is well-calibrated: the attacker must place a malicious scoped-name package into the victim's dependency graph via a registry or lockfile compromise, requiring meaningful social engineering or supply-chain access. S:U in the provided vector is arguably under-scored, as file writes escape node_modules to arbitrary filesystem paths including system-wide directories, which implies scope change; this analysis assesses S:C instead. No EPSS data is available in the provided intelligence. The CVE is not listed in CISA KEV, confirming no known active exploitation at time of analysis. The --ignore-scripts bypass is the primary severity amplifier: developers in supply-chain-aware environments frequently rely on this flag as a compensating control, and this vulnerability invalidates that assumption entirely. The realistic exploitation path (convince a developer to install a malicious package) is consistent with documented supply-chain attack campaigns and warrants prompt patching despite the AC:H rating.

Exploit ScenarioDerived

An attacker publishes a convincingly named npm package under a scoped identifier embedding a path-traversal sequence, such as @legitimate-org/../../../home/developer/.gitconfig, and either submits it as a transitive dependency update or persuades the victim to add it directly. When the developer runs pnpm install - even with --ignore-scripts - pnpm's extraction pipeline resolves the traversal and writes package contents to the developer's home directory, silently replacing their Git configuration. On the next git commit or push, a malicious Git hook executes with the developer's full privileges.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 31, 2026

Scoped path traversal in pnpm allows arbitrary filesystem overwrites during package installation, defeating the --ignore-scripts safety flag entirely. Affected are pnpm v10 before 10.34.5 and v11 before 11.11.0: the package manager's name validation in pickPackage.ts rejects slash characters only for unscoped package names, permitting a scoped name such as @evil/../../../home/user/.bashrc to pass unchecked into raw path joins across three resolver modules and extract package content to any attacker-controlled path. No public exploit has been identified at time of analysis, though GitHub-confirmed patches with regression tests are available.

RemediationAI

Upgrade pnpm to version 10.34.5 (https://github.com/pnpm/pnpm/releases/tag/v10.34.5) or 11.11.0 (https://github.com/pnpm/pnpm/releases/tag/v11.11.0), the vendor-confirmed patched releases for the respective branches. The upstream fix, delivered via PRs #12872 and #12890, validates scoped package names for path-traversal sequences before they enter any filesystem path join and applies the check at all pipeline entry points including the lockfile path. There is no configuration-only workaround: --ignore-scripts does not mitigate this vulnerability and should not be relied upon as a compensating control. If immediate patching is blocked, manually audit pnpm-lock.yaml and package.json dependency declarations for any scoped names containing .. sequences, and restrict installation of new or updated dependencies to registries with strict package-name validation policies, noting that this only reduces - not eliminates - the attack surface.

Affected VersionsENISA

pnpm < 10.34.5
pnpm 11.0.0, < 11.11.0

Affected Packages

npm pnpm fix: 10.34.5, 11.11.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

pnpm (cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:*:*) is a Node.js package manager that installs dependencies into a content-addressable virtual store and symlinks them into node_modules. CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) is the root cause: the validation logic in pnpm11/resolving/npm-resolver/src/pickPackage.ts enforces a slash-character check only on unscoped package names, not on the @scope/name form. A crafted scoped name such as @x/../../../etc/cron.d/backdoor passes validation and then participates in raw path.join() calls in three pipeline files: pnpm11/installing/deps-resolver/src/resolvePeers.ts, pnpm11/installing/deps-resolver/src/index.ts, and pnpm11/deps/graph-builder/src/lockfileToDepGraph.ts. The vulnerability surfaces in two distinct trigger paths: via a package.json dependency declaration and via a crafted pnpm-lock.yaml lockfile, including under --frozen-lockfile --trust-lockfile. Because the file write occurs through the extraction pipeline rather than npm lifecycle scripts, --ignore-scripts provides no mitigation.

Know when Pnpm gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 8.3 HIGH

Scope changed to S:C because file writes escape node_modules to arbitrary filesystem paths outside pnpm's authority; all other metrics align with the provided vector.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:N
SUSE HIGH
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Aug 31, 2026 - 23:02 EUVD
CVE Published
Aug 31, 2026 - 21:12 cve.org
HIGH 7.5

DescriptionCVE.org

pnpm is a package manager. Prior to 10.34.5 and 11.11.0, pnpm accepts a scoped path traversal in a tarball dependency's package.json manifest name because pnpm11/resolving/npm-resolver/src/pickPackage.ts rejects slash characters only for unscoped names. During pnpm install, the unvalidated name reaches raw path joins in pnpm11/installing/deps-resolver/src/resolvePeers.ts, pnpm11/installing/deps-resolver/src/index.ts, and pnpm11/deps/graph-builder/src/lockfileToDepGraph.ts, causing package extraction outside node_modules and allowing attacker-controlled files to overwrite arbitrary filesystem paths even when --ignore-scripts is used. The overwrite can replace shell startup files, Git hooks, or installed package code and lead to code execution. This issue is fixed in versions 10.34.5, and 11.11.0.

Technical POC Analysis

CWE-22 (Path Traversal), with GitHub additionally mapping CWE-73 and CWE-94.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

pnpm package manager (versions 10 before 10.34.5, 11 before 11.11.0) contains a path traversal vulnerability allowing attackers to overwrite arbitrary files on developer machines during package installation. Development teams using affected versions face supply chain compromise risk and potential code execution if they install malicious packages.

Business Impact: High
Compensating Controls

Apply vendor patch: upgrade to pnpm v10.34.5 or v11.11.0 or later. If immediate patching is not feasible, restrict package installations to verified internal registries and require manual review of new package dependencies before installation.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
High
popular Node.js package manager, tens of millions weekly downloads
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

58
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Pnpm

View all
CVE-2025-69264 CRITICAL POC
9.8 Jan 07

Arbitrary code execution in the pnpm package manager (versions 10.0.0 through 10.25) lets a git-hosted dependency run co

CVE-2023-37478 CRITICAL POC
9.8 Aug 01

pnpm is a package manager. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable, no authentica

CVE-2026-50016 HIGH POC
8.8 Jun 25

Path traversal in pnpm before 10.34.0 and 11.4.0 lets a malicious registry package smuggle '../' segments inside a trans

CVE-2026-55698 HIGH POC
8.8 Jun 25

Arbitrary code execution in the pnpm package manager (versions prior to 10.34.2 and 11.5.3) lets a malicious repository

CVE-2026-55697 HIGH POC
8.8 Jun 25

Arbitrary command execution in pnpm before 10.34.2 and 11.5.3 allows a malicious repository to run attacker-chosen nativ

CVE-2025-69263 HIGH POC
8.8 Jan 07

Supply-chain integrity bypass in pnpm package manager (versions ≤10.26.2, per description; GHSA states <10.26.0) allows

CVE-2022-26183 HIGH POC
8.8 Mar 21

PNPM v6.15.1 and below was discovered to contain an untrusted search path which causes the application to behave in unex

CVE-2026-50021 HIGH POC
8.1 Jun 25

Integrity-check bypass in the pnpm package manager (versions before 10.34.0/10.34.1 and 11.0.0-11.3.x) lets tampered pac

CVE-2025-69262 HIGH POC
7.8 Jan 07

Command injection in pnpm versions 6.25.0 through 10.26.2 allows attackers controlling environment variables to execute

CVE-2026-50015 HIGH POC
7.3 Jun 25

Arbitrary file write and deletion in pnpm package manager (versions prior to 10.34.0 and 11.4.0) lets a malicious contri

CVE-2026-50014 HIGH POC
7.3 Jun 25

Arbitrary command execution in pnpm before 10.34.0 and 11.4.0 allows a malicious lockfile to run code on a developer's m

CVE-2026-55700 HIGH POC
7.1 Jun 25

Path traversal in pnpm's `pnpm stage download` command (versions 11.3.0 through 11.5.2) lets a malicious or compromised

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy