Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Malicious repo is network-delivered and unauthenticated (AV:N/PR:N) but the victim must run pnpm (UI:R); resulting arbitrary code execution yields full C:H/I:H/A:H with unchanged scope.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Lifecycle Timeline
2DescriptionCVE.org
pnpm is a package manager. Prior to 10.34.2 and 11.5.3, pnpm can persist package-manager bootstrap metadata in the first YAML document of pnpm-lock.yaml. Before the patch, direct pnpm execution trusted an already resolved packageManagerDependencies entry when the committed env lockfile contained matching pnpm and @pnpm/exe versions. A malicious repository could therefore commit package-manager lockfile package records and snapshots that bypassed fresh package-manager resolution, then cause pnpm to install and execute bytes selected by that committed lockfile state during automatic version switching. This vulnerability is fixed in 10.34.2 and 11.5.3.
AnalysisAI
Arbitrary code execution in the pnpm package manager (versions prior to 10.34.2 and 11.5.3) lets a malicious repository hijack pnpm's automatic version-switching mechanism. By committing crafted package-manager bootstrap metadata in the first YAML document of pnpm-lock.yaml - including matching pnpm and @pnpm/exe versions plus package records and snapshots - an attacker bypasses fresh package-manager resolution and causes pnpm to install and execute attacker-selected bytes when a developer runs pnpm in the cloned repo. No public exploit identified at time of analysis; the high CVSS of 8.8 reflects full confidentiality, integrity, and availability impact, gated only by the user running pnpm against the poisoned repository.
Technical ContextAI
pnpm supports automatic package-manager version switching, where it bootstraps and runs the pnpm/@pnpm/exe version pinned for a project. This bootstrap metadata (packageManagerDependencies) can be persisted in the first YAML document of the lockfile (pnpm-lock.yaml). The flaw is a CWE-345 (Insufficient Verification of Data Authenticity) issue: direct pnpm execution trusted an already-resolved packageManagerDependencies entry whenever the committed env lockfile contained matching pnpm and @pnpm/exe versions, treating committed lockfile package records and snapshots as authoritative instead of performing fresh, trusted package-manager resolution. The affected component is the pnpm CLI itself (CPE cpe:2.3:a:pnpm:pnpm), and the trust boundary crossed is the lockfile committed into a repository - untrusted external data that should never be allowed to dictate which binary pnpm fetches and executes.
RemediationAI
Vendor-released patch: upgrade pnpm to 10.34.2 (10.x line) or 11.5.3 (11.x line) as the primary and complete fix, per GitHub Security Advisory GHSA-w466-c33r-3gjp (https://github.com/pnpm/pnpm/security/advisories/GHSA-w466-c33r-3gjp). Until you can upgrade across developer workstations and CI runners, the most effective compensating control is to avoid running pnpm directly inside untrusted or freshly cloned third-party repositories, and to disable or pin automatic package-manager version switching so pnpm does not bootstrap a version dictated by the committed lockfile (trade-off: you lose convenient per-repo automatic version selection and must manage pnpm versions explicitly). Additionally, review and scrutinize the first YAML document / packageManagerDependencies and env lockfile entries of pnpm-lock.yaml in incoming pull requests and untrusted repos before executing pnpm, and run package installs for untrusted code inside sandboxed or containerized environments to contain any execution (trade-off: added workflow friction). Pin a known-good pnpm version in CI rather than letting repos select it.
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 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
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
Path traversal in pnpm's `pnpm stage download` command (versions 11.3.0 through 11.5.2) lets a malicious or compromised
Path traversal in pnpm's global package management flows allows deletion of the global bin directory or its parent when
Same technique Authentication Bypass
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39484
GHSA-w466-c33r-3gjp