Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPublish malicious pnpm-workspace.yaml in repo
-
DeliveryVictim clones and runs pnpm install
-
ExploitEnv placeholder expands in proxy setting
-
ExecutionSecret embedded in proxy host/userinfo
-
PersistInstall traffic and DNS routed to attacker
-
ImpactEnvironment secrets exfiltrated
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Outbound data filtering
|
| Exploitation Conditions | Exploitation requires: (1) the victim runs an affected pnpm version (>=11.0.0,<11.11.0 or >=10.7.0,<10.34.5 - the flaw was introduced in 10.7.0 with env-var expansion in setting names/values); (2) the victim clones/opens a repository whose attacker-controlled pnpm-workspace.yaml defines httpProxy, httpsProxy, or noProxy containing ${VAR} placeholders; (3) the victim runs a pnpm command such as |
| Impact | This is a genuine, non-hypothetical priority despite the absence of KEV/EPSS signals. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N, base 8.3) is internally consistent with the description: network vector, low complexity, no privileges, but passive user interaction (the victim must clone the repo and run a pnpm command). The high confidentiality impact (VC:H) plus subsequent-system scope change (SC:H) correctly captures that repository-controlled input causes the victim's process-environment secrets (NPM_TOKEN, GITHUB_TOKEN) to be exfiltrated to an attacker host - a clean CWE-201 (sensitive information sent to unauthorized actor) rather than an integrity/availability issue, so VI/VA/SI/SA:N is appropriate. No EPSS score, no KEV listing, and no standalone exploit flag were provided; however the GHSA advisory itself embeds a working proof-of-concept pnpm-workspace.yaml, so publicly available exploit code exists. The realistic weighting is high: this is a supply-chain trust-boundary bypass (author a manifest → read a victim's secrets) that fires during config loading BEFORE any lifecycle script, defeating script-sandboxing mitigations, and it triggers on the extremely common |
| Exploit ScenarioDerived | An attacker publishes a public repo, fork, or supply-chain pull request whose pnpm-workspace.yaml sets httpProxy to a host embedding ${NPM_TOKEN} or ${GITHUB_TOKEN} in its hostname or userinfo. A developer or CI job clones the repo and runs |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 27, 2026
Environment-variable secrets such as NPM_TOKEN or GITHUB_TOKEN can be exfiltrated from a developer's machine by pnpm 11.0.0 through 11.10.x and 10.7.0 through 10.34.4, which expand ${VAR} placeholders in the httpProxy, httpsProxy and noProxy settings read from a repository-controlled pnpm-workspace.yaml. An attacker who controls only that manifest - a public repo, a fork, or a supply-chain pull request - can cause a victim who merely clones the repository and runs a command such as pnpm install to expand secrets into an attacker-controlled proxy hostname or userinfo, routing install traffic and the associated DNS lookups through the attacker's host; exfiltration occurs during configuration loading, before any lifecycle script runs. No authentication or pre-existing access to the victim's store, global config, lockfile, node_modules, or environment is required (CVSS PR:N), but the attack depends on user interaction because the victim must voluntarily clone the repository and invoke pnpm in a secret-bearing environment; publicly available proof-of-concept code exists, and no confirmed active exploitation (CISA KEV) has been reported.
RemediationAI
Vendor-released patches are available: upgrade to pnpm 11.11.0 or later for the 11.x line, or pnpm 10.34.5 or later for the 10.x line (upstream fixes were merged via pull requests https://github.com/pnpm/pnpm/pull/12871 and https://github.com/pnpm/pnpm/pull/12898, and the change adds httpProxy, httpsProxy, noProxy, proxy and noproxy to the request-destination key set in @pnpm/config.reader so placeholders in proxy settings from untrusted manifests are dropped rather than expanded, with regression tests covering the proxy keys). Until patching is possible, avoid running any pnpm command inside an untrusted repository in a shell that carries secrets such as NPM_TOKEN or GITHUB_TOKEN, since unsetting those variables (or running in a scrubbed environment/CI job with no secret env vars) removes the exfiltration payload entirely at the cost of losing registry authentication for that session. Alternatively, inspect the cloned repository's pnpm-workspace.yaml before invoking pnpm and remove or reject any httpProxy, httpsProxy, noProxy, proxy or noproxy entries that contain ${...} placeholders; this is a manual gate that fails open if the reviewer does not check the file, so it should be paired with tooling that diffs and blocks manifest changes to proxy keys in pull requests. Because the leak occurs during configuration loading, sandboxing install scripts, blocking lifecycle scripts, or restricting network egress after install does not mitigate it, although egress filtering that blocks proxy destinations outside your approved infrastructure can limit where secrets can be sent. Full details and the maintainers' guidance are in https://github.com/pnpm/pnpm/security/advisories/GHSA-vx52-2968-3vc6.
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
The flaw is classified as CWE-201 (Insertion of Sensitive Information Into Sent Data) and stems from an incomplete trust boundary in pnpm's configuration loader. pnpm 10.7.0 introduced expansion of ${VAR} environment placeholders in setting names and values, and pnpm deliberately suppresses that expansion for request-destination settings (registry, pnprServer, registries and namedRegistries) when they originate from an untrusted, repository-controlled project manifest rather than the user's own environment. The guard set in @pnpm/config.reader (src/getOptionsFromRootManifest.ts) simply omitted the proxy keys - httpProxy, httpsProxy, noProxy and the proxy/noproxy aliases - even though the sibling .npmrc reader already classifies those same keys as request destinations via its isRequestDestinationValueKey logic. As a result, a malicious pnpm-workspace.yaml supplies a proxy hostname or userinfo containing a placeholder such as ${NPM_TOKEN}, which pnpm resolves against the victim's process environment while loading configuration; the resolved value is then used as the destination for install traffic and its DNS resolution, delivering the secret to the attacker. The affected code paths are configuration parsing and proxy/DNS destination selection, so the leak happens before any lifecycle or install script executes and does not require a malicious dependency, lockfile entry, or global configuration change. The Rust port (pacquet) and the registry server (pnpr) are not affected, and the flaw affects pnpm >= 11.0.0, < 11.11.0 and >= 10.7.0, < 10.34.5.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
Remote unauthenticated repo content, but victim must clone and run pnpm (UI:R); secrets leak from environment across a trust boundary (S:C, C:H) with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
pnpm versions 11.0.0 before 11.11.0 and 10.7.0 before 10.34.5 expand ${VAR} environment-variable placeholders in the httpProxy, httpsProxy, and noProxy settings read from a project's pnpm-workspace.yaml. Because the manifest is repository-controlled and the proxy keys were omitted from the request-destination key set that otherwise suppresses placeholder expansion for untrusted manifests (as already done for registry, pnprServer, registries and namedRegistries), an attacker who controls a repository's pnpm-workspace.yaml can cause a victim who clones the repository and runs a pnpm command (e.g. pnpm install) to expand environment secrets such as NPM_TOKEN or GITHUB_TOKEN into a proxy hostname or userinfo and route install traffic - and the corresponding DNS lookups - through an attacker-controlled host. The exfiltration occurs during configuration loading, before any lifecycle script executes. Fixed in pnpm 11.11.0 and 10.34.5.
Articles & Coverage 1
Technical POC Analysis
Evidence note: the supplied advisory lists this as "No known CVE", scores it High 7.4 (GitHub calculation) / 7.7 (advisory text), and the vulnerable/fixed ranges below.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
pnpm versions 10.7.0 through 10.34.4 and 11.0.0 through 11.10.x allow an attacker-controlled repository manifest to exfiltrate environment secrets such as NPM_TOKEN or GITHUB_TOKEN from developer machines during routine pnpm install commands. This unauthenticated attack requires only that a developer clone and invoke pnpm on a malicious repository, potentially compromising package registry and source code repository credentials across the organization. With no vendor patch available, leadership should prioritize mitigating exposure for all development and CI/CD environments using affected pnpm versions.
No vendor-released patch identified at time of analysis. Interim mitigations: avoid running pnpm install on untrusted repositories; run pnpm in an isolated environment with dummy or empty environment variables (e.g., unset NPM_TOKEN, GITHUB_TOKEN); inspect pnpm-workspace.yaml for suspicious ${VAR} expansions in proxy settings before execution; enforce network egress filtering to prevent DNS lookups and connections to attacker-controlled proxy hosts; rotate any potentially exposed secrets immediately.
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-87974
GHSA-49pq-2gf3-jw76
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB