Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInject colliding opaque dependency locator
-
DeliveryVictim approves legitimate source build
-
ExploitLocator normalizes to approved key
-
ExecutionBypass allowBuilds policy
-
PersistRun attacker lifecycle scripts
-
ImpactCode execution in dev/CI
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | Exploitation requires (1) the project to use pnpm with build-script approval (allowBuilds / onlyBuiltDependencies) and a prior user approval of a legitimate OPAQUE-locator source - git, URL, tarball, file, or directory; registry-package identities are NOT affected because they legitimately normalize peer suffixes and retain patch hashes; and (2) the attacker to introduce a second source whose locator normalizes to the same key as the approved one (one of three forms: a parenthesized suffix like (evil), a final-@ semver tail misclassified as a registry package, or a semver-looking source-only tail). Limiting factors: user interaction is mandatory (UI:R - a victim must have approved a build), the colliding source must be present in the resolved dependency tree, and SSVC marks it non-automatable, so it is targeted rather than mass-exploitable. |
| Impact | The supplied CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H = 8.8) and SSVC (Exploitation: poc, Automatable: no, Technical Impact: total) align on a serious flaw: network-reachable, low-complexity, no privileges, but requiring user interaction. The user interaction is meaningful - a developer must approve a build for the colliding legitimate source, so this is not drive-by exploitation. EPSS is low (0.11%, 2nd percentile) and the issue is not in CISA KEV, consistent with SSVC 'Automatable: no' - exploitation is targeted and requires a crafted dependency tree plus a victim approval, not mass-scannable. Net: a high-impact (total/RCE-class) but precondition-gated supply-chain issue; real priority for organizations using pnpm with build-script approval, but not an indiscriminate worm-style threat. No conflicting signals were found; the vector and description are consistent. |
| Exploit ScenarioDerived | A developer approves building a trusted opaque dependency such as foo@https://host/pkg.tgz. An attacker who can influence the project's dependency set (e.g. via a transitive dependency, a malicious PR, or a typosquatted source) introduces foo@https://host/pkg.tgz(evil), which normalizes to the same approved key and silently runs its attacker-controlled install/build lifecycle scripts, achieving code execution in the developer's or CI environment. Publicly available exploit replay steps are documented in the advisory, and the network attack vector with low complexity makes the collision reliable once a user approval exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv3 – Jun 29, 2026
Build-script approval bypass in the pnpm package manager (versions before 10.34.2, and 11.0.0 through 11.5.2) lets an attacker-controlled dependency source run lifecycle scripts that a user only approved for a different, legitimate source. The generic peer-suffix normalizer stripped parenthesized text from opaque locators (git, URL, tarball, file), so two distinct sources could normalize to the same allowBuilds key - meaning approval of foo@https://host/pkg.tgz also authorized foo@https://host/pkg.tgz(evil). Publicly available exploit code exists (SSVC: poc) and technical impact is total, though EPSS is low at 0.11% and it is not in CISA KEV.
Earlier versions of this analysis (2)
Origin/source-approval bypass in the pnpm package manager (versions before 10.34.2, and 11.0.0 through 11.5.2) allows an attacker-controlled dependency source to be installed under approval granted for a different, trusted source. The flaw lies in the generic peer-suffix normalizer, which over-aggressively stripped parenthesized text from git, URL, tarball, file, and other opaque locators, causing two distinct sources to normalize to the same value; a developer who runs an install (user interaction required) can therefore be served a substituted source. SSVC rates technical impact as total and a proof-of-concept exists, though EPSS is low (0.11%) and it is not in CISA KEV - no public exploit identified at time of analysis beyond the advisory's described mechanism.
Origin validation bypass in the pnpm package manager (versions before 10.34.2 and before 11.5.3) lets an attacker-controlled dependency source masquerade as a previously approved one. The generic peer-suffix normalizer strips parenthesized text not only from peer suffixes but also from git, URL, tarball, file, and other opaque locators, so two distinct source strings can normalize to an identical value - meaning a user's prior approval of one legitimate source silently authorizes a different malicious source. No public exploit identified at time of analysis; not listed in CISA KEV.
RemediationAI
Vendor-released patch: upgrade to pnpm 10.34.2 (for the 10.x line) or 11.5.3 (for the 11.x line), which reject all three normalization-collision forms and enforce byte-exact matching for opaque locators while preserving legitimate registry peer-suffix normalization. The fix is implemented in commit bf1b731ee6c0ea98709e671ff0f46bf654480ab8 and described in advisory https://github.com/pnpm/pnpm/security/advisories/GHSA-5wx6-mg75-v57r. If you cannot upgrade immediately, the most effective compensating control is to disable automatic lifecycle-script execution entirely (for example pin onlyBuiltDependencies to an empty/explicit allowlist or run installs with scripts disabled), accepting the trade-off that packages genuinely needing native builds will not compile until run manually; additionally, prefer registry-pinned dependencies over git/URL/tarball/file locators and audit any opaque sources in your lockfile, since those are the only locator types this bug affects.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
pnpm gates execution of dependency lifecycle (build) scripts behind an explicit allowBuilds approval policy keyed on a dependency's resolved identity. For registry packages, that identity legitimately normalizes peer-dependency suffixes (the parenthesized tail) so a package approved without its peer suffix still matches. The defect is a CWE-346 Origin Validation Error: the same generic normalizer was applied to opaque, non-registry locators (git, URL, tarball, file, directory), incorrectly stripping parenthesized content from sources whose identity must be byte-exact. CPE cpe:2.3:a:pnpm:pnpm confirms the affected component is pnpm itself. The advisory documents three collision forms - the parenthesized-suffix strip, a Rust-only final-@ misclassification (foo@https://host/pkg@1.0.0(good) vs (evil)), and a semver-looking source-only tail (https://host/pkg@1.0.0 collapsing (evil)) - all rooted in treating opaque identities like registry identities.
Know when Pnpm gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Network-delivered dependency, no attacker privileges, but a victim must approve a build (UI:R); successful lifecycle execution yields total host compromise so C/I/A all High.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
pnpm is a package manager. Prior to 10.34.2 and 11.5.3, the generic peer-suffix normalizer also stripped parenthesized text from git, URL, tarball, file, and other opaque locators. Approval for one source string could therefore authorize a different attacker-controlled source whose locator normalized to the same value. This vulnerability is fixed in 10.34.2 and 11.5.3.
Executive ViewAI
CVE-2026-55487 affects pnpm package managers before version 10.34.2 and 11.0.0-11.5.2, enabling attackers to bypass build-script approval controls and inject malicious code into the dependency installation process; publicly available exploit code exists. Organizations using vulnerable pnpm versions face direct compromise of their software build pipeline, with downstream impact to all applications and services distributed by their organization. Immediate patching is critical to prevent supply chain contamination and maintain release integrity.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Arbitrary code execution in the pnpm package manager (versions 10.0.0 through 10.25) lets a git-hosted dependency run co
pnpm is a package manager. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable, no authentica
Path traversal in pnpm before 10.34.0 and 11.4.0 lets a malicious registry package smuggle '../' segments inside a trans
Arbitrary code execution in the pnpm package manager (versions prior to 10.34.2 and 11.5.3) lets a malicious repository
Arbitrary command execution in pnpm before 10.34.2 and 11.5.3 allows a malicious repository to run attacker-chosen nativ
Supply-chain integrity bypass in pnpm package manager (versions ≤10.26.2, per description; GHSA states <10.26.0) allows
PNPM v6.15.1 and below was discovered to contain an untrusted search path which causes the application to behave in unex
Integrity-check bypass in the pnpm package manager (versions before 10.34.0/10.34.1 and 11.0.0-11.3.x) lets tampered pac
Command injection in pnpm versions 6.25.0 through 10.26.2 allows attackers controlling environment variables to execute
Scoped path traversal in pnpm allows arbitrary filesystem overwrites during package installation, defeating the --ignore
Arbitrary file write and deletion in pnpm package manager (versions prior to 10.34.0 and 11.4.0) lets a malicious contri
Arbitrary command execution in pnpm before 10.34.0 and 11.4.0 allows a malicious lockfile to run code on a developer's m
EUVD-2026-39481
GHSA-5wx6-mg75-v57r
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB