MEDIUM 6.8

CVE-2026-50573: pnpm Silent Supply-Chain Integrity Bypass in Versions <10.34.0 and <11.4.0

pnpm, a widely-used Node.js package manager, has a vulnerability that undermines a core security mechanism: the lockfile integrity check. When you run `pnpm install` without the frozen flag, pnpm is supposed to verify that downloaded packages match the integrity hashes stored in pnpm-lock.yaml. However, in versions before 10.34.0 and 11.4.0, if a package registry serves modified content for a previously-locked package, pnpm reports the mismatch but then silently accepts the new content, updates the lockfile, and installs the modified package anyway. This defeats the purpose of lockfile integrity verification, which exists to prevent supply-chain attacks where registries or network intermediaries might inject malicious code into your dependencies.

Source data · NVD / CISA · public domain

CVSS
3.1 · 6.8 MEDIUM · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
Weaknesses (CWE)
CWE-345
Affected products
1 configuration(s)
Published / Modified
2026-06-25 / 2026-06-29

NVD description (verbatim)

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.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in pnpm's integrity validation logic during non-frozen installation mode. When pnpm detects that a downloaded tarball's hash does not match the integrity value in pnpm-lock.yaml, the expected behavior is to fail the operation and alert the user. Instead, the affected versions invoke a resolution repair process that silently accepts the new integrity hash from the registry, overwrites the lockfile, and proceeds with installation. This occurs because the integrity check is not treated as a hard stop; rather, it triggers automatic remediation that trusts the registry's new metadata. The fix in 10.34.0 and 11.4.0 hardens this validation to reject mismatches by default unless explicitly overridden by the user.

Business impact

For development teams, this vulnerability creates a window for supply-chain compromise without obvious detection. An attacker who can intercept or manipulate registry responses (via DNS hijacking, BGP hijacking, compromised registry, or insider access) could inject malicious code into dependencies that would be silently accepted and installed by any team member running `pnpm install` on an existing project. The silent acceptance and lockfile update makes the compromise difficult to detect in code review or CI/CD logs, since no error is raised. Organizations relying on lockfile integrity as a security boundary should treat this as a medium-priority remediation to prevent supply-chain attacks.

Affected systems

pnpm versions prior to 10.34.0 (in the 10.x line) and prior to 11.4.0 (in the 11.x line) are vulnerable. Any project using an affected version of pnpm that runs `pnpm install` without the --frozen-lockfile flag is at risk. The --frozen-lockfile flag, when used, provides protection by refusing to modify the lockfile and failing if integrity mismatches are detected, so projects already using that flag are not exploitable via this mechanism.

Exploitability

Exploitation requires two conditions: the attacker must be able to manipulate or intercept package registry responses, and a developer must run `pnpm install` (not `pnpm install --frozen-lockfile`) on a project with an existing lockfile. The CVSS vector AV:N/AC:H/UI:R reflects that this is network-accessible but requires moderate complexity (registry manipulation) and user interaction (running install). The attack is not trivial but is within reach of sophisticated threat actors with registry access or network position.

Remediation

Upgrade pnpm to 10.34.0 or later if using the 10.x line, or 11.4.0 or later if using the 11.x line. Additionally, organizations should adopt the practice of running `pnpm install --frozen-lockfile` in CI/CD pipelines and development workflows wherever possible, which enforces strict lockfile verification and prevents silent acceptance of new content.

Patch guidance

Apply the vendor patch by upgrading pnpm: use `npm install -g [email protected]` for the 10.x line or `npm install -g [email protected]` for the 11.x line, or the latest version available. Verify the upgrade using `pnpm --version`. After patching, re-run `pnpm install` to ensure your lockfile is consistent with the patched behavior. No lockfile migration is required; the patch is backward-compatible.

Detection guidance

Monitor for unexpected changes to pnpm-lock.yaml files, especially integrity hash changes that lack corresponding code review comments or ticket references. Enable audit logging on npm registry proxies and mirrors to detect unusual integrity value changes. In CI/CD, configure pre-commit hooks to validate that lockfile integrity hashes have not drifted without explicit developer approval. Review logs for any `pnpm install` executions that result in lockfile modifications in production or release pipelines.

Why prioritize this

Although this is rated MEDIUM severity, it should be prioritized based on your supply-chain security posture. If your organization treats lockfile integrity as a security control (which it should), this vulnerability directly undermines that control and warrants swift patching. Teams already using `--frozen-lockfile` in all automated contexts face reduced risk but should still upgrade to close the gap for manual developer installs.

Risk score, explained

The CVSS 3.1 score of 6.8 (MEDIUM) reflects high confidentiality and integrity impact (an attacker can inject arbitrary code) but requires network attacker positioning (AC:H) and user interaction (UI:R) to exploit. The score does not account for the widespread use of pnpm in JavaScript ecosystems or the difficulty of detecting silent supply-chain manipulation, factors that elevate business risk even if technical exploitability is moderate.

Frequently asked questions

Does using `pnpm install --frozen-lockfile` protect me from this vulnerability?

Yes. The frozen-lockfile flag enforces strict integrity verification and refuses to modify the lockfile, so it is not vulnerable to the silent acceptance behavior described in CVE-2026-50573. However, this only protects automated pipelines; developers running plain `pnpm install` locally can still be affected, so upgrading is still recommended.

If my lockfile was already modified by this vulnerability, how do I detect it?

Check your version control history for unexpected changes to pnpm-lock.yaml with integrity hash modifications that don't correspond to intentional dependency updates. If you suspect compromise, compare the integrity values to the official registry using `pnpm view <package-name>@<version>` and investigate any discrepancies with your team.

Do I need to regenerate my lockfile after upgrading pnpm?

Not necessarily. The patch is backward-compatible and will work with existing lockfiles. However, you may run `pnpm install` after upgrading to validate that your current lockfile is consistent with the patched behavior and to ensure no stale entries remain.

What should I do if I discover my project was affected by this vulnerability?

Immediately upgrade pnpm to the patched version, audit your lockfile for any unexpected integrity changes, review the commit history and contents of recently installed packages, and consider re-installing dependencies in a clean environment. If you operate a private registry or proxies, review access logs for suspicious activity.

This analysis is provided for informational purposes and is based on the CVE record published on 2026-06-25. We recommend verifying all patch version numbers and remediation steps against the official pnpm security advisory and GitHub releases. Supply-chain security is context-dependent; organizations should assess this vulnerability within their own dependency management practices and threat model. This writeup does not constitute security advice or a warranty of any kind. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).