Skip to main content

pnpm EUVDEUVD-2026-68816

| CVE-2026-82392 HIGH
Path Traversal (CWE-22)
2026-08-31 GitHub_M GHSA-c59q-g84q-2gj5
7.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Attacker crafts pnpm-lock.yaml with traversal package key
  2. Delivery
    Victim clones or receives poisoned repository
  3. Exploit
    Victim runs pnpm install
  4. Execution
    pnpm parses unvalidated name via dp.parse
  5. Persist
    path.join writes package outside node_modules
  6. Impact
    If dangerouslyAllowAllBuilds enabled: postinstall executes as victim user

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

Exploitation requires a victim to run pnpm install (UI:R per CVSS) against a project whose pnpm-lock.yaml contains attacker-controlled package path keys with directory traversal sequences such as ../../path/to/target@1.0.0 or scoped equivalents like @scope/../../../target. The file-write primitive triggers in all affected versions regardless of script configuration - the PR diff explicitly states the traversal write occurs even with --ignore-scripts, meaning this flag does not serve as a reliable compensating control. Escalation to arbitrary code execution as the victim user additionally requires that the pnpm configuration have dangerouslyAllowAllBuilds=true or a matching allowBuilds entry that permits the traversal-escaped package to run lifecycle scripts; this is a non-default but operationally common setting in monorepos that build native addons. The attacker does not require any privileges on the victim system and does not need access to a legitimate npm registry - only the ability to place a crafted lockfile in a location the victim will run pnpm install against (shared repository, fork, pull request branch, or direct file delivery).

Impact

The CVSS 3.1 score of 7.1 (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L) accurately reflects the core risk profile: high-integrity arbitrary file write requiring only that a victim run pnpm install against a crafted lockfile, with no authentication required of the attacker. The AV:N rating is well-grounded because the malicious lockfile can be distributed through a poisoned source repository, shared project workspace, or social engineering, with no need for the attacker to have any foothold on the victim's machine. EPSS data is absent from the provided input, so exploitation probability cannot be quantified; KEV status is not listed, and no public exploit has been identified. Real-world risk is meaningfully tiered by deployment pattern: any JavaScript development shop or CI/CD pipeline running automated pnpm install against shared or third-party repositories faces the file-write primitive regardless of script settings, and even a mid-sized municipal IT team in olsztyn relying on pnpm monorepos for internal tooling would be exposed. The secondary code-execution impact is conditional on dangerouslyAllowAllBuilds or allowBuilds being configured, which is non-default but commonly enabled in monorepo environments that build native modules. The CVSS I:H rating is fully justified; the S:U scope-unchanged designation is consistent with the exploitation requiring the victim user context rather than escaping to a privileged scope independently.

Exploit ScenarioDerived

An attacker contributes a crafted pnpm-lock.yaml to a shared project repository, embedding a packages key such as ../../etc/cron.d/backdoor@1.0.0 paired with a malicious package payload containing a postinstall script. A developer or CI runner clones the repository and executes pnpm install; pnpm parses the unvalidated package name and writes the extracted package contents to /etc/cron.d/backdoor. If the project's pnpm configuration includes dangerouslyAllowAllBuilds=true, the postinstall script runs immediately with the invoking user's privileges, completing remote code execution without any further interaction.

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

Arbitrary file write in pnpm package manager versions before 10.34.5 and 11.0.0-11.11.0 allows an attacker who can supply a crafted pnpm-lock.yaml to escape the node_modules directory boundary and place package contents at attacker-controlled filesystem paths when a developer runs pnpm install. Even --ignore-scripts does not prevent the file-write primitive; when the project additionally enables dangerouslyAllowAllBuilds or a matching allowBuilds configuration entry, the escaped package's lifecycle scripts execute with the victim user's OS-level privileges. Vendor-released patches are available as pnpm 10.34.5 and 11.11.0; no public exploit has been identified at time of analysis.

RemediationAI

Vendor-released patches are available: upgrade to pnpm 10.34.5 (https://github.com/pnpm/pnpm/releases/tag/v10.34.5) or pnpm 11.11.0 (https://github.com/pnpm/pnpm/releases/tag/v11.11.0) immediately. As a compensating control prior to patching, audit any pnpm-lock.yaml files received from external or shared sources for dependency path keys containing ../ or ..\ sequences before running pnpm install; automated pre-install grep hooks on lockfile content can enforce this. Disabling dangerouslyAllowAllBuilds and removing permissive allowBuilds entries will eliminate the code-execution path but does not prevent the underlying file-write primitive, since the PR diff explicitly confirms the traversal write occurs even with --ignore-scripts. Restricting CI pipeline permissions so the build user cannot write to sensitive system directories (e.g., via filesystem namespace isolation or rootless containers) reduces the blast radius of arbitrary file writes but is not a complete fix. The upstream fix is implemented in PRs #12872 (https://github.com/pnpm/pnpm/pull/12872) and #12890 (https://github.com/pnpm/pnpm/pull/12890).

Affected VersionsENISA

pnpm 11.0.0, < 11.11.0
pnpm < 10.34.5

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 is a Node.js package manager that maintains a content-addressable virtual store and resolves dependencies through a lockfile (pnpm-lock.yaml). The vulnerability exists in deps/graph-builder/src/lockfileToDepGraph.ts (and the pnpm 11 equivalent) where the package name is extracted from lockfile dependency-path keys via dp.parse(depPath).name without any path-traversal sanitization. This unsanitized name flows directly into path.join(modules, pkgName) and storeController.importPackage, as well as the Plug'n'Play resolver at lockfile/to-pnp/src/index.ts. CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) precisely describes this root cause: attacker-supplied sequences such as ../../tmp/x or scoped traversals like @x/../../../<path> bypass the intended node_modules containment boundary. The PR diff confirms that the hoisted linker already had analogous protection, but the isolated (virtual-store) linker and the PnP resolver lacked equivalent validation until this fix. The fix adds upfront name validation and a centralized check at formatGlobalVirtualStorePath, the single funnel for all global virtual-store slot paths. Affected CPE: cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:*:* for versions prior to 10.34.5 on the 10.x branch and 11.0.0-11.10.x on the 11.x branch.

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.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L
vuln.today AI 7.1 HIGH

Crafted lockfile delivered via network requires no attacker privileges; victim must actively run install (UI:R); impact is file-write only with no confidentiality exposure.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Aug 31, 2026 - 22:18 EUVD
CVE Published
Aug 31, 2026 - 21:03 cve.org
HIGH 7.1

DescriptionCVE.org

pnpm is a package manager. Prior to 10.34.5 and from 11.0.0 until 11.11.0, pnpm parses the package name from attacker-controlled pnpm-lock.yaml packages keys with dp.parse(depPath).name and uses it without validation in deps/graph-builder/src/lockfileToDepGraph.ts and pnpm11/deps/graph-builder/src/lockfileToDepGraph.ts. The name reaches path.join(modules, pkgName), storeController.importPackage, and pnpm11/lockfile/to-pnp/src/index.ts, allowing package contents to be written outside node_modules when a user runs pnpm install. When dangerouslyAllowAllBuilds or a matching allowBuilds entry permits lifecycle scripts, the escaped package can execute code with the user's privileges. This issue is fixed in versions 10.34.5 and 11.11.0.

Technical POC Analysis

CWE-22.

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, a widely-used package manager, contains a vulnerability in versions before 10.34.5 and 11.11.0 that enables attackers to execute code on developer machines and build servers through compromised project repositories. Organizations using affected versions risk unauthorized code execution in their development environments, potentially compromising code quality, intellectual property, and CI/CD security.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
High
widely adopted Node.js package manager, dominant in monorepo and enterprise JS ecosystems
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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 No
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
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
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.

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-82393 HIGH POC
7.5 Aug 31

Scoped path traversal in pnpm allows arbitrary filesystem overwrites during package installation, defeating the --ignore

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

Vendor StatusVendor

SUSE

Severity: Important

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