Skip to main content

pnpm EUVDEUVD-2026-39489

| CVE-2026-50573 HIGH
Insufficient Verification of Data Authenticity (CWE-345)
2026-06-25 GitHub_M GHSA-54hh-g5mx-jqcp
8.1
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Compromise registry or mirror
  2. Delivery
    Overwrite pinned package tarball + metadata
  3. Exploit
    Victim runs non-frozen pnpm install
  4. Execution
    pnpm detects mismatch then resolution-repairs
  5. Persist
    Installs malicious content, rewrites lockfile
  6. Impact
    Code executes in build/dev environment

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Exploitation Conditions

Requires three concrete conditions: (1) the install is run in NON-FROZEN mode - i.e., plain pnpm install WITHOUT --frozen-lockfile, so pnpm's resolution-repair path is allowed to run; (2) the attacker controls the content the registry returns for an already-locked (package name + version) pair - a compromised/hijacked registry, a malicious mirror, or MITM of a non-HTTPS registry - serving a tarball whose hash differs from the one in pnpm-lock.yaml; (3) the victim runs the install on a clean store/cache so the altered tarball is actually fetched. Limiting factors: it does NOT work when --frozen-lockfile (or CI frozen-by-default) is enforced, it requires user interaction (someone must run the install per UI:R), and it requires the attacker to already control registry responses rather than simply reaching the victim over the network - so it is not exploitable against a victim using a trusted, integrity-honored HTTPS registry.

Impact

Signals are mixed and should be read together rather than off the headline CVSS 8.1. The NVD vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N) scores network reach and no victim privileges, but it understates a critical precondition the description makes explicit: the attacker must already control what the registry serves (a compromised/hijacked registry, malicious mirror, or MITM of an HTTP registry) AND the victim must run a non-frozen pnpm install. That registry-control requirement is closer to AC:H than AC:L in practice. SSVC reinforces a measured priority: Exploitation=PoC (not active), Automatable=no, Technical Impact=partial - i.e., not a spray-and-pray automatable bug. EPSS 0.11% (1st percentile) and absence from CISA KEV agree it is not currently mass-exploited. Net: this is a meaningful supply-chain hardening fix and a real risk for anyone whose registry/mirror could be subverted, but it is a conditional, integrity-of-pipeline issue rather than a directly remotely-triggerable RCE against arbitrary internet hosts. Note conflict to verify: CVSS AC:L vs. description implying the attacker must first compromise registry content - treat real-world complexity as higher than the score suggests.

Exploit ScenarioDerived

An attacker who has compromised an internal mirror, a self-hosted registry, or an HTTP registry path replaces the tarball and metadata for an already-pinned dependency (e.g., example-package@1.0.0) with malicious content carrying a new hash. A developer or CI job runs a normal pnpm install (non-frozen) on a clean store; pnpm flags the integrity mismatch but then 'repairs' the lockfile, installs the malicious v2 content, rewrites pnpm-lock.yaml to trust it, and exits 0. A working proof-of-concept reproduction is published in the advisory.

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

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

Alert me

AnalysisAIv3 – Jun 29, 2026

Lockfile integrity bypass in the pnpm package manager (versions below 10.34.0, and 11.0.0 through 11.4.0) lets a malicious or compromised registry override a package version's previously recorded hash. On a plain pnpm install in non-frozen mode, pnpm detects the tarball-vs-lockfile integrity mismatch, warns, then silently performs a 'resolution repair' that accepts the registry's new integrity, rewrites pnpm-lock.yaml, and installs the substituted content while exiting 0. Publicly available exploit code exists (a full reproduction scenario is published in the GitHub advisory), but there is no public exploit identified as used in active attacks; EPSS is low at 0.11%.

Earlier versions of this analysis (2)
v2 Jun 29, 2026 - 21:29 cvss changed CVSS 8.1

Lockfile integrity enforcement bypass in the pnpm JavaScript package manager (versions before 10.34.0 and before 11.4.0) lets a registry that serves altered metadata and tarball content for an already-locked package name/version slip past pnpm's integrity check. In default non-frozen pnpm install mode, the initially reported integrity mismatch triggers an automatic 'resolution repair' that accepts the new integrity, rewrites pnpm-lock.yaml, and installs the substituted content while exiting successfully - so the lockfile pin is advisory rather than a hard stop. Publicly available exploit/proof-of-concept context exists (SSVC 'poc'); this is not in CISA KEV and EPSS is very low at 0.11%.

v1 Jun 25, 2026 - 18:22 CVSS 6.8

Integrity check bypass in pnpm's non-frozen install mode allows silently substituted registry content to be accepted and installed without hard failure. When pnpm detects that a downloaded tarball's hash does not match the integrity value recorded in pnpm-lock.yaml, it performs an automatic 'resolution repair' rather than aborting - updating the lockfile with the registry's new hash and completing installation. Affecting all pnpm versions prior to 10.34.0 and 11.4.0, this undermines supply chain integrity guarantees for any developer or CI pipeline running plain pnpm install, and no confirmed active exploitation is identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to pnpm 10.34.0 (for the 10.x/older line) or pnpm 11.4.0 (for the 11.x line), per advisory GHSA-54hh-g5mx-jqcp (https://github.com/pnpm/pnpm/security/advisories/GHSA-54hh-g5mx-jqcp). As an immediate compensating control that does not require upgrading, run installs with pnpm install --frozen-lockfile everywhere a committed lockfile exists (set CI to fail rather than repair), which makes a hash mismatch a hard stop; the trade-off is that legitimate lockfile drift must now be resolved deliberately with an explicit pnpm install/update rather than silently. Additionally, require HTTPS registries and pin/verify your registry or mirror to remove the MITM/altered-content path, and restrict who can publish/overwrite package versions on internal registries (disable version overwrite/republish). Frozen-lockfile is the default in CI for many setups already, so enforcing it closes the practical exposure pending the upgrade.

Affected VersionsENISA

pnpm 11.0.0, < 11.4.0
pnpm < 10.33.4

Affected Packages

npm pnpm fix: 10.33.4, 10.34.0, 11.4.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

pnpm-lock.yaml records a Subresource-Integrity-style hash (sha512) for every resolved package as a Trust-On-First-Use anchor: subsequent installs are supposed to fail closed if the fetched tarball does not match. The root cause is CWE-345 (Insufficient Verification of Data Authenticity): the integrity check is treated as advisory rather than authoritative when the install is not run with --frozen-lockfile. When a hash mismatch occurs, pnpm's 'resolution repair' path conflates two distinct situations - a legitimately stale lockfile that needs regeneration, versus a registry serving altered content for an already-pinned (name, version) pair - and resolves both by trusting the live registry. The affected component is the pnpm CLI itself (cpe:2.3:a:pnpm:pnpm), not a transitive library, so any project using pnpm without frozen installs inherits the weak default.

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 (GitHub_M) PRIMARY MEDIUM
NVD 8.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
vuln.today AI 5.3 MEDIUM

AC:H because the attacker must first control registry content for an already-pinned version; UI:R as a victim must run a non-frozen install; C:H/I:H from installing attacker-chosen code, A:N as availability is not the impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

5
Analysis Updated
Jun 29, 2026 - 21:29 vuln.today
v3 - CVSS changed
Analysis Updated
Jun 29, 2026 - 21:29 vuln.today
v2 - CVSS changed
Severity Changed
Jun 29, 2026 - 21:22 NVD
MEDIUM HIGH
CVSS changed
Jun 29, 2026 - 21:22 NVD
6.8 (MEDIUM) 8.1 (HIGH)
Patch available
Jun 25, 2026 - 19:17 EUVD

DescriptionNVD

pnpm is a package manager. Prior to 10.34.0 and 11.4.0, pnpm install in non-frozen mode can accept new remote package content after detecting that the downloaded tarball does not match the integrity recorded in pnpm-lock.yaml. When a package is already locked with an integrity value, and the registry later serves different metadata and tarball content for the same package name and version, pnpm initially reports an integrity mismatch. However, plain pnpm install then performs a resolution repair, accepts the registry's new integrity, updates the lockfile, installs the new content, and exits successfully. This means the lockfile integrity check does not act as a hard stop by default. This vulnerability is fixed in 10.34.0 and 11.4.0.

Executive ViewAI

Why It Matters

pnpm package manager versions below 10.34.0 and 11.0.0-11.4.0 contain a lockfile integrity bypass enabling threat actors with registry access to inject malicious code into production builds while evading security checks. This exposes organizations to supply chain compromise affecting all software built with vulnerable pnpm versions, with potential impact to customer trust and regulatory compliance.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
High
widely used JavaScript/Node monorepo package manager in CI and dev
Threat Intel
1
1 sources
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL 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.1%
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

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
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

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