pnpm vulnerable to no-script global cache poisoning via overrides / `ignore-scripts` evasion
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
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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| pnpm | pnpm | before 9.15.0 | 9.15.0 | Patch available | CNA |
| — | pnpm (npm) | before 9.15.0 | 9.15.0 | Patch available | GHSA-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
Remediation
- Fix · CNA pnpm (pnpm) Fixed in 9.15.0
- Fix · GHSA-vm32-9rqf-rh3r pnpm (npm) Fixed in 9.15.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-53866
- 2026-10-03 Alias added: GHSA-vm32-9rqf-rh3r
References
More Pnpm vulnerabilities
- 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
Sources
- CVE-2024-53866 · CVE Program
- CVE-2024-53866 · NVD
- FIRST EPSS
- GHSA-vm32-9rqf-rh3r · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences