Description
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.
Published: 2026-08-31
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

pnpm, a JavaScript package manager, incorrectly parses the package name from entries in pnpm-lock.yaml when constructing the dependency graph. Because the parsed name is used directly in a path join operation without validation, an attacker can supply a crafted depPath that contains path-traversal sequences. When pnpm install is run, the malicious package name allows files to be written outside the expected node_modules directory. If the environment permits lifecycle scripts (via dangerousAllowAllBuilds or an explicit allowBuilds entry), the attacker’s payload can execute code with the permissions of the user running pnpm. Consequently, this flaw enables local code execution or privilege escalation on systems that run pnpm with untrusted lockfiles. pnpm packages in the range prior to version 10.34.5 and the 11.x series up through 11.11.0 are affected. Users of pnpm 10.0-10.34.4 and pnpm 11.0-11.11.0 must review their installed versions and consider upgrading. No other pnpm major releases are listed as vulnerable. The CVSS score of 7.1 indicates a high impact, and the lack of an EPSS rating implies no measured current exploit prevalence but does not preclude exploitation. This vulnerability is not present in the CISA KEV catalog, suggesting that known exploits are not publicly documented. Given that the flaw requires only a malicious pnpm-lock.yaml file and runs at install time, the likely attack vector is local, though a compromised package source could supply the lockfile. If an attacker can persuade a developer to install a dependency using the malicious lockfile, they could gain arbitrary command execution on the developer’s system.

Affected Systems

pnpm is distributed under the pnpm:pnpm name and is affected in all releases prior to version 10.34.5 and in the 11.x sequence up through 11.11.0. All users of pnpm 10.x before 10.34.5 and all users of pnpm 11.x before 11.11.0 should verify their installed version and plan an upgrade. No other pnpm major releases have been identified as vulnerable in the current advisory.

Risk and Exploitability

The issue carries a CVSS score of 7.1, classifying it as a high‑severity vulnerability. EPSS information is unavailable, and the vulnerability is not listed in the CISA KEV catalog, meaning there are no known publicly documented exploits at the time of this analysis. Exploitation requires a malicious pnpm-lock.yaml file that contains a crafted depPath with path‑traversal sequences. During a standard pnpm install, this path traversal allows an attacker to write files outside the intended node_modules directory. If lifecycle scripts are permitted, the payload can execute with the user's privileges, enabling local code execution or privilege escalation. The attack vector is local— it necessitates that the attacker supplies or influences the lockfile that is processed by pnpm. However, supply chain attacks could introduce the malicious lockfile into a trusted project, making the threat less obvious. Thus, the vulnerability poses a significant risk to any environment that installs packages from untrusted sources.

Generated by OpenCVE AI on August 31, 2026 at 23:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pnpm to version 10.34.5 or newer (including 11.11.0 and later).
  • If upgrading immediately is not feasible, configure pnpm to disallow lifecycle script execution by removing or setting dangerousAllowAllBuilds to false and by providing an explicit allowBuilds whitelist that excludes untrusted packages.
  • Run pnpm install inside a confined environment, such as a rootless container or pod, to limit file system access and contain any potential path traversal.
  • Verify the integrity of pnpm-lock.yaml before installation; reject lockfiles that contain suspicious path components.

Generated by OpenCVE AI on August 31, 2026 at 23:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 31 Aug 2026 22:45:00 +0000

Type Values Removed Values Added
First Time appeared Pnpm
Pnpm pnpm
Vendors & Products Pnpm
Pnpm pnpm

Mon, 31 Aug 2026 21:15:00 +0000

Type Values Removed Values Added
Description 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.
Title pnpm: Virtual store linker path traversal via unvalidated depPath name in lockfileToDepGraph
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-31T21:03:25.652Z

Reserved: 2026-08-28T22:00:43.511Z

Link: CVE-2026-82392

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-31T21:17:54.033

Modified: 2026-08-31T21:17:54.033

Link: CVE-2026-82392

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T23:15:04Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')