Read the docs
TI-2024-36059 Aliases CVE-2024-53866GHSA-vm32-9rqf-rh3r

pnpm vulnerable to no-script global cache poisoning via overrides / `ignore-scripts` evasion

Priority MEDIUM 61CWE-426Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
Passive
Attack complexity
High
Attack requirements
Present
Impact type
Code execution, Security bypass
Confidentiality · integrity · availability
None · Low · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-426 and CWE-346.

Summary

The package manager pnpm prior to version 9.15.0 seems to mishandle overrides and global cache: Overrides from one workspace leak into npm metadata saved in global cache; npm metadata from global cache affects other workspaces; and installs by default don't revalidate the data (including on first lockfile generation). This can make workspace A (even running with `ignore-scripts=true`) posion global cache and execute scripts in workspace B. Users generally expect `ignore-scripts` to be sufficient to prevent immediate code execution on install (e.g. when the tree is just repacked/bundled without executing it). Here, that expectation is broken. Global state integrity is lost via operations that one would expect to be secure, enabling subsequently running arbitrary code execution on installs. Version 9.15.0 fixes the issue. As a work-around, use separate cache and store dirs in each workspace.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00977 62nd percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed pnpm (pnpm): 9.15.0pnpm (npm): 9.15.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
pnpmpnpmbefore 9.15.09.15.0Patch availableCNA
—pnpm (npm)before 9.15.09.15.0Patch availableGHSA-vm32-9rqf-rh3r
  • pnpm Vendorpnpm Affected before 9.15.0 Fixed in 9.15.0 Patch available CNA
  • pnpm (npm) Vendor— Affected before 9.15.0 Fixed in 9.15.0 Patch available GHSA-vm32-9rqf-rh3r

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:node.js:*:*before 9.15.0Vulnerablepnpm
  • cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:node.js:*:* Versions before 9.15.0 Vulnerable ·pnpm

Remediation

  • Fix · CNA pnpm (pnpm) Fixed in 9.15.0
  • Fix · GHSA-vm32-9rqf-rh3r pnpm (npm) Fixed in 9.15.0 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2024-53866
  2. 2026-10-03 Alias added: GHSA-vm32-9rqf-rh3r

References

  • TI-2025-42715 pnpm v10+ Bypass "Dependency lifecycle scripts execution disabled by default" CVSS 3.1CRITICAL 9.8
  • TI-2023-19086 pnpm incorrectly parses tar archives relative to specification CVSS 3.1CRITICAL 9.8
  • TI-2026-40212 pnpm: Project env lockfile can short-circuit package-manager resolution and execute lockfile-selected pnpm bytes CVSS 3.1HIGH 8.8
  • TI-2026-40211 pnpm: Repository-controlled configDependencies can select a pacquet native install engine CVSS 3.1HIGH 8.8
  • TI-2026-40042 pnpm: manifest identity spoof satisfies allowBuilds and runs attacker lifecycle CVSS 3.1HIGH 8.8
  • TI-2026-36842 pnpm: Transitive dependency alias path traversal allows project path override via symlink replacement CVSS 3.1HIGH 8.8
See all 27 →

Sources