Skip to main content

pnpm CVE-2026-50014

| EUVDEUVD-2026-39490 HIGH
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-06-25 GitHub_M GHSA-p4xf-rf54-rj3x
7.3
CVSS 3.1 · NVD
Share

Severity by source

Vendor (GitHub_M) PRIMARY
MEDIUM
qualitative
NVD
7.3 HIGH
AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
vuln.today AI
7.5 HIGH

Attacker controls a distributed lockfile (PR:N) but needs victim to run install (UI:R) and a non-default SSH/local transport (AC:H); injected command execution yields full C/I/A:H.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Red Hat
6.4 MEDIUM
qualitative

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

8
Source Code Evidence Fetched
Jun 29, 2026 - 21:28 vuln.today
Analysis Updated
Jun 29, 2026 - 21:28 vuln.today
v3 (cvss_changed)
Analysis Updated
Jun 29, 2026 - 21:28 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jun 29, 2026 - 21:22 vuln.today
cvss_changed
Severity Changed
Jun 29, 2026 - 21:22 NVD
MEDIUM HIGH
CVSS changed
Jun 29, 2026 - 21:22 NVD
6.4 (MEDIUM) 7.3 (HIGH)
Patch available
Jun 25, 2026 - 19:17 EUVD
Analysis Generated
Jun 25, 2026 - 18:23 vuln.today

DescriptionNVD

pnpm is a package manager. Prior to 10.34.0 and 11.4.0, pnpm passes the lockfile-controlled git resolution.commit value to git fetch without a -- separator or commit-format validation. For git dependencies fetched through the shallow-fetch path, a malicious lockfile can replace the expected 40-character commit hash with a Git option such as --upload-pack=<command>. For SSH and local transports, --upload-pack can execute the supplied command. HTTPS transports ignore --upload-pack, so the practical attack surface is primarily SSH or local git dependencies. This vulnerability is fixed in 10.34.0 and 11.4.0.

AnalysisAI

Arbitrary command execution in pnpm before 10.34.0 and 11.4.0 allows a malicious lockfile to run code on a developer's machine during pnpm install. Because pnpm passes the lockfile-controlled resolution.commit to git fetch/git checkout without a -- separator or 40-hex-character validation, an attacker can substitute the expected commit hash with a Git option such as --upload-pack=<command>, which Git executes for SSH and local (file://) transports. Publicly available exploit code exists (POC), but there is no public exploit identified as actively exploited; EPSS is low (0.17%, 7th percentile), consistent with a developer-targeted supply-chain vector rather than mass internet scanning.

Technical ContextAI

The flaw is a classic argument injection (CWE-88) in pnpm's git dependency fetcher (fetching/git-fetcher/src/index.ts). When a git host is configured for shallow fetching, pnpm builds the command git fetch --depth 1 origin <resolution.commit> and later git checkout <resolution.commit>, appending the lockfile value as a positional argument with no -- end-of-options marker. Git treats any token beginning with - as an option, so a value like --upload-pack=touch /tmp/pwned is interpreted as the --upload-pack flag. Git's --upload-pack specifies the program run on the remote end; for SSH and local transports Git invokes that string as a shell command on the local/origin side, yielding code execution. HTTPS transport does not honor --upload-pack, so it is not exploitable. The root cause is that resolution.commit is typed as a plain string and is never validated against /^[0-9a-f]{40}$/i. The single CPE provided (cpe:2.3:a:pnpm:pnpm:*) confirms the affected component is the pnpm package manager itself.

RemediationAI

Upgrade pnpm to a fixed release: Vendor-released patch: 10.34.0 (for the 10.x line) or 11.4.0 (for the 11.x line), per advisory https://github.com/pnpm/pnpm/security/advisories/GHSA-p4xf-rf54-rj3x. The fix adds a -- separator before lockfile-controlled revision values and validates resolution.commit against a 40-character hex pattern. Until you can upgrade, reduce exposure with these specific controls: treat any change to pnpm-lock.yaml as security-sensitive and require code review of lockfile diffs before merging or before running install in CI (side effect: added review friction on legitimate dependency bumps); prefer HTTPS git transport for any git: dependencies and avoid SSH or local file:// git dependencies, since HTTPS ignores --upload-pack and is not exploitable (side effect: may require credential/token reconfiguration for private repos); and run pnpm install for untrusted repositories inside an isolated/ephemeral sandbox or container so injected command execution cannot reach developer credentials or the host (side effect: slower local onboarding). Audit existing lockfiles for any resolution.commit value that is not a 40-character hexadecimal hash.

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-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-55700 HIGH POC
7.1 Jun 25

Path traversal in pnpm's `pnpm stage download` command (versions 11.3.0 through 11.5.2) lets a malicious or compromised

CVE-2026-55699 MEDIUM POC
6.5 Jun 25

Path traversal in pnpm's global package management flows allows deletion of the global bin directory or its parent when

Vendor StatusVendor

Share

CVE-2026-50014 vulnerability details – vuln.today

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