Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Malicious repo content is network-delivered (AV:N) and trivially triggered (AC:L) with no attacker privileges (PR:N), but requires the victim to run install (UI:R); arbitrary binary execution yields total C/I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Lifecycle Timeline
7DescriptionNVD
pnpm is a package manager. Prior to 10.34.2 and 11.5.3, pnpm can install configDependencies declared in pnpm-workspace.yaml before command dispatch. Before the patch, a repository could declare pacquet or @pnpm/pacquet as a config dependency and pnpm treated that repository-controlled dependency as an install-engine opt-in. During install, pnpm resolved a platform-specific @pacquet/<platform>-<arch>/pacquet binary from node_modules/.pnpm-config/<packageName> and spawned it as the developer or CI user. This vulnerability is fixed in 10.34.2 and 11.5.3.
AnalysisAI
Arbitrary command execution in pnpm before 10.34.2 and 11.5.3 allows a malicious repository to run attacker-chosen native binaries as the developer or CI user during a routine install. The flaw stems from pnpm processing configDependencies in pnpm-workspace.yaml before command dispatch: a repo could declare pacquet/@pnpm/pacquet as a config dependency, causing pnpm to resolve a platform-specific @pacquet/<platform>-<arch>/pacquet binary from node_modules/.pnpm-config and spawn it. Publicly available exploit code exists, though EPSS is low (0.12%, 2nd percentile) and it is not in CISA KEV.
Technical ContextAI
pnpm is a widely used JavaScript/Node.js package manager that reads project configuration from pnpm-workspace.yaml, including a configDependencies mechanism intended to let a workspace opt into an alternate install engine (pacquet). The root cause is CWE-78 (OS Command Injection / argument-to-command flow): pnpm trusted a repository-controlled configDependency as an install-engine opt-in and, during install, resolved a native platform-specific binary path (node_modules/.pnpm-config/<packageName>, i.e. @pacquet/<platform>-<arch>/pacquet) and executed it directly. Because this resolution and spawn happened before normal command dispatch and lifecycle-script gating, simply running an install in a hostile repository was enough to execute attacker-supplied code. The CPE cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:*:* confirms the pnpm package itself is the affected component.
RemediationAI
Vendor-released patch: upgrade pnpm to 10.34.2 (10.x line) or 11.5.3 (11.x line), as documented in GitHub Security Advisory GHSA-gj8w-mvpf-x27x (https://github.com/pnpm/pnpm/security/advisories/GHSA-gj8w-mvpf-x27x); pin the patched version in CI runner images and developer toolchains. Until upgraded, the practical compensating control is to avoid running pnpm install on untrusted or unreviewed repositories and to audit pnpm-workspace.yaml for any configDependencies entry referencing pacquet or @pnpm/pacquet before installing - removing or rejecting such entries prevents the install-engine opt-in, with the trade-off that legitimate pacquet engine usage would be blocked. Running installs in sandboxed/ephemeral CI containers with no persistent credentials limits blast radius if the binary is spawned, though it does not prevent code execution within that sandbox.
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
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 weakness CWE-78 – OS Command Injection
View allSame technique Command Injection
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39483
GHSA-gj8w-mvpf-x27x