Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
AC:H because exploitation needs both lockfile modification and control of registry-served content; PR:L for the repository/lockfile write access required; I:H/C:H from arbitrary tampered-package execution, A:N as availability is not the direct impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Lifecycle Timeline
8DescriptionNVD
pnpm is a package manager. Prior to 10.34.0 and 11.4.0, pnpm's tarball extraction worker skips integrity verification when the integrity field is absent from the lockfile resolution. If an attacker can both modify pnpm-lock.yaml to remove the integrity: field and cause the referenced registry URL to serve altered package content, pnpm install --frozen-lockfile can install the altered package without an integrity error. npm's npm ci enforces integrity by default; pnpm's behavior of silently skipping verification is a pnpm-specific fail-open gap. This vulnerability is fixed in 10.34.0 and 11.4.0.
AnalysisAI
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 packages install silently because the tarball extraction worker skips hash verification whenever the lockfile resolution has no integrity field. An attacker who can both edit pnpm-lock.yaml to drop the integrity: line and cause the referenced registry URL to serve altered content can push a malicious package through pnpm install --frozen-lockfile without any integrity error - a fail-open gap that npm's npm ci does not share. Publicly available exploit code exists; EPSS is low (0.12%, 2nd percentile) and the issue is not in CISA KEV.
Technical ContextAI
pnpm is one of the three major JavaScript/Node.js package managers and relies on Subresource-Integrity-style hashes recorded in pnpm-lock.yaml to guarantee that downloaded tarballs match what was originally resolved. The flaw is a classic CWE-354 (Improper Validation of Integrity Check Value): in addTarballToStore within worker/src/start.ts (lines 189-204) the hash comparison is gated behind if (integrity), and because the TarballResolution type declares integrity?: string as optional, an undefined value makes the guard evaluate false and skips verification entirely. The worker then computes a fresh hash from the unverified bytes and stores it as if legitimate, so even --frozen-lockfile - intended to be the strict, reproducible install mode - fails open rather than rejecting the entry. The affected CPE is cpe:2.3:a:pnpm:pnpm.
RemediationAI
Vendor-released patch: upgrade to pnpm 10.34.1 (10.x line; advisory also lists 10.34.0 as the fix) or 11.4.0 (11.x line), per GHSA-q6j5-fjx5-2mc3 (https://github.com/pnpm/pnpm/security/advisories/GHSA-q6j5-fjx5-2mc3). Until you upgrade, the most effective compensating control is to enforce that every remote tarball resolution in pnpm-lock.yaml carries an integrity: value: add a CI lint/pre-merge check that fails the build if any non-local lockfile entry is missing its integrity field (trade-off: requires custom tooling and may flag legitimately hand-edited lockfiles). Lock down who can modify pnpm-lock.yaml via branch protection and mandatory code review so a stripped integrity field cannot land unnoticed (trade-off: process overhead), and pin installs to a trusted internal registry / proxy with TLS and immutable package versions to remove the attacker's ability to serve altered content at a given URL (trade-off: requires registry infrastructure). These controls address both halves of the attack precondition; none fully substitutes for the patch.
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
Directory traversal vulnerability in lib/app/index.js in Geddy before 13.0.8 for Node.js allows remote attackers to read
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Eval injection vulnerability in index.js in the syntax-error package before 1.1.1 for Node.js 0.10.x, as used in IBM Rat
Same technique Information Disclosure
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39488
GHSA-q6j5-fjx5-2mc3