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

Impact

During pnpm installation, a tarball dependency’s package.json can include a scoped name that contains slash characters. pnpm does not reject these slashes for scoped names, allowing the name to be passed directly into raw path joins. The result is extraction of files outside the intended node_modules directory, enabling an attacker who controls the tarball contents to overwrite arbitrary filesystem paths, such as shell startup files, Git hooks, or executable package code. The flaw is a form of path traversal (CWE‑22, CWE‑73) and can lead to code execution (CWE‑94).

Affected Systems

Any deployment that uses pnpm versions older than 10.34.5 or 11.11.0 is vulnerable. The weakness exists in the core install logic and does not depend on platform or user permissions beyond running pnpm install. All projects that include a malicious or compromised tarball dependency are at risk, regardless of operating system.

Risk and Exploitability

The CVSS score of 7.5 indicates a high impact vulnerability. EPSS information is currently not available, and the flaw is not listed in CISA’s KEV catalog. The attack vector is likely to be present when a user runs pnpm install against a registry that hosts a malicious tarball or when an attacker gains the ability to modify a dependency’s tarball contents. By supplying a tarball with a crafted package.json name, an attacker can overwrite critical files on the filesystem during normal dependency installation, potentially achieving code execution or privilege escalation. The upstream fix in pnpm 10.34.5 and 11.11.0 removes the validation flaw, closing the path through which arbitrary paths could be extracted.

Generated by OpenCVE AI on August 31, 2026 at 22:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pnpm to version 10.34.5 or later, or to 11.11.0 or later.
  • If an upgrade cannot be performed immediately, audit the tarball dependencies: prohibit any package.json name that contains a slash or any other path traversal characters. Run pnpm with a policy that rejects such names before installation.
  • Restrict filesystem permissions on the node_modules directory to the least privilege necessary for application execution, ensuring that even if a malicious overwrite occurs it cannot affect system‑wide executable paths.

Generated by OpenCVE AI on August 31, 2026 at 22:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

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

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

Type Values Removed Values Added
Description 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.
Title pnpm: A tarball dependency's manifest `name` escapes node_modules → arbitrary file write/overwrite on install
Weaknesses CWE-22
CWE-73
CWE-94
References
Metrics cvssV3_1

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-31T21:12:09.196Z

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

Link: CVE-2026-82393

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-31T22:17:22.353

Modified: 2026-08-31T22:17:22.353

Link: CVE-2026-82393

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T23:30:06Z

Weaknesses
  • CWE-22

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

  • CWE-73

    External Control of File Name or Path

  • CWE-94

    Improper Control of Generation of Code ('Code Injection')