Skip to main content

pnpm CVE-2026-101043

| EUVDEUVD-2026-87974 HIGH
Insertion of Sensitive Information Into Sent Data (CWE-201)
2026-09-27 VulnCheck GHSA-49pq-2gf3-jw76
8.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Publish malicious pnpm-workspace.yaml in repo
  2. Delivery
    Victim clones and runs pnpm install
  3. Exploit
    Env placeholder expands in proxy setting
  4. Execution
    Secret embedded in proxy host/userinfo
  5. Persist
    Install traffic and DNS routed to attacker
  6. Impact
    Environment 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 pnpm install; and (4) the target environment actually holds secrets (e.g. NPM_TOKEN, GITHUB_TOKEN) in process environment variables. No pre-existing access to the victim's store, global config, lockfile, node_modules, or environment is needed, and no lifecycle script execution is required since exfiltration happens during config loading. The key limiting factor is user interaction (UI:P/UI:R): a victim must voluntarily clone the repo and invoke pnpm in a secret-bearing context - it is not remotely triggerable against a server and not automatable at scale.

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 pnpm install action. The main risk-limiter is UI:P/UI:R - it is not wormable/automatable against servers; it requires a victim to clone and run pnpm in a secret-bearing environment (developer workstation or CI).

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 pnpm install; during config loading pnpm expands the environment placeholder and routes install traffic - and the corresponding DNS lookups - through the attacker-controlled proxy, delivering the secret. A copy-paste proof-of-concept manifest is published in the GHSA advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

pnpm 10.7.0 <10.34.5
pnpm 11.0.0 <11.11.0

Affected Packages

npm pnpm fix: 10.34.5, 11.11.0

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

Vendor (VulnCheck) PRIMARY 8.3 HIGH
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
vuln.today AI 7.4 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
SUSE HIGH
Red Hat 7.4 HIGH

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 27, 2026 - 18:01 EUVD
CVE Published
Sep 27, 2026 - 17:02 cve.org
HIGH 8.3

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.2%
Top 88% exploitable
Prevalence
High
pnpm is one of the three major JavaScript/Node.js package managers, widely used in enterprise and CI
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Pnpm

View all
CVE-2025-69264 CRITICAL POC
9.8 Jan 07

Arbitrary code execution in the pnpm package manager (versions 10.0.0 through 10.25) lets a git-hosted dependency run co

CVE-2023-37478 CRITICAL POC
9.8 Aug 01

pnpm is a package manager. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable, no authentica

CVE-2026-50016 HIGH POC
8.8 Jun 25

Path traversal in pnpm before 10.34.0 and 11.4.0 lets a malicious registry package smuggle '../' segments inside a trans

CVE-2026-55698 HIGH POC
8.8 Jun 25

Arbitrary code execution in the pnpm package manager (versions prior to 10.34.2 and 11.5.3) lets a malicious repository

CVE-2026-55697 HIGH POC
8.8 Jun 25

Arbitrary command execution in pnpm before 10.34.2 and 11.5.3 allows a malicious repository to run attacker-chosen nativ

CVE-2025-69263 HIGH POC
8.8 Jan 07

Supply-chain integrity bypass in pnpm package manager (versions ≤10.26.2, per description; GHSA states <10.26.0) allows

CVE-2022-26183 HIGH POC
8.8 Mar 21

PNPM v6.15.1 and below was discovered to contain an untrusted search path which causes the application to behave in unex

CVE-2026-50021 HIGH POC
8.1 Jun 25

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

CVE-2025-69262 HIGH POC
7.8 Jan 07

Command injection in pnpm versions 6.25.0 through 10.26.2 allows attackers controlling environment variables to execute

CVE-2026-82393 HIGH POC
7.5 Aug 31

Scoped path traversal in pnpm allows arbitrary filesystem overwrites during package installation, defeating the --ignore

CVE-2026-50015 HIGH POC
7.3 Jun 25

Arbitrary file write and deletion in pnpm package manager (versions prior to 10.34.0 and 11.4.0) lets a malicious contri

CVE-2026-50014 HIGH POC
7.3 Jun 25

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

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy