7.1 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): Required (R)
- Scope (S): Unchanged (U)
- Confidentiality (C): None (N)
- Integrity (I): High (H)
- Availability (A): Low (L)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): None (N)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): High (H)
- Modified Availability (MA): Low (L)
by @LeSuisse Activity log
- Created suggestion
-
@LeSuisse
ignored
4 packages
- pnpmBuildHook
- pnpmConfigHook
- pnpm-fixup-state-db
- pnpm-shell-completion
- @LeSuisse accepted
- @LeSuisse published on GitHub
pnpm: Virtual store linker path traversal via unvalidated depPath name in lockfileToDepGraph
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.
References
-
https://github.com/pnpm/pnpm/security/advisories/GHSA-c59q-g84q-2gj5 x_refsource_CONFIRM
-
https://github.com/pnpm/pnpm/pull/12872 x_refsource_MISC
-
https://github.com/pnpm/pnpm/pull/12890 x_refsource_MISC
-
https://github.com/pnpm/pnpm/releases/tag/v10.34.5 x_refsource_MISC
-
https://github.com/pnpm/pnpm/releases/tag/v11.11.0 x_refsource_MISC
Affected products
- ==>= 11.0.0, < 11.11.0
- ==< 10.34.5
Matching in nixpkgs
pkgs.pnpm
Fast, disk space efficient package manager for JavaScript
pkgs.pnpm_8
None
pkgs.pnpm_9
None
pkgs.pnpm_10
Fast, disk space efficient package manager for JavaScript
pkgs.pnpm_11
Fast, disk space efficient package manager for JavaScript
pkgs.pnpm_10_29_2
Fast, disk space efficient package manager for JavaScript
pkgs.pnpm_10_34_0
Fast, disk space efficient package manager for JavaScript
Ignored packages (4)
Package maintainers
-
@Scrumplex Sefa Eyeoglu <contact@scrumplex.net>
-
@gepbird Gutyina Gergő <gutyina.gergo.2@gmail.com>