CVE-2025-69263: pnpm Lockfile Integrity Bypass Allows Remote Dynamic Dependencies

Published Jan 7, 2026
·
Updated

Summary

HTTP tarball dependencies (and git-hosted tarballs) are stored in the lockfile without integrity hashes. This allows the remote server to serve different content on each install, even when a lockfile is committed.

Details

When a package depends on an HTTP tarball URL, pnpm's tarball resolver returns only the URL without computing an integrity hash:

resolving/tarball-resolver/src/index.ts: javascript return { resolution: { tarball: resolvedUrl, // No integrity field }, resolvedVia: 'url', }

The resulting lockfile entry has no integrity to verify: yaml remote-dynamic-dependency@http://example.com/pkg.tgz: resolution: {tarball: http://example.com/pkg.tgz} version: 1.0.0

Since there is no integrity hash, pnpm cannot detect when the server returns different content.

This affects: - HTTP/HTTPS tarball URLs ("pkg": "https://example.com/pkg.tgz") - Git shorthand dependencies ("pkg": "github:user/repo") - Git URLs ("pkg": "git+https://github.com/user/repo")

npm registry packages are not affected as they include integrity hashes from the registry metadata.

PoC

See attached pnpm-bypass-integrity-poc.zip

The POC includes: - A server that returns different tarball content on each request - A malicious-package that depends on the HTTP tarball - A victim project that depends on malicious-package

To run: bash cd pnpm-bypass-integrity-poc ./run-poc.sh

The output shows that each install (with pnpm store prune between them) downloads different code despite having a committed lockfile.

Impact

An attacker who publishes a package with an HTTP tarball dependency can serve different code to different users or CI/CD environments. This enables:

- Targeted attacks based on request metadata (IP, headers, timing) - Evasion of security audits (serve benign code during review, malicious code later) - Supply chain attacks where the malicious payload changes over time

The attack requires the victim to install a package that has an HTTP/git tarball in its dependency tree. The victim's lockfile provides no protection.

Other sources

pnpm is a package manager. Versions 10.26.2 and below store HTTP tarball dependencies (and git-hosted tarballs) in the lockfile without integrity hashes. This allows the remote server to serve different content on each install, even when a lockfile is committed. An attacker who publishes a package with an HTTP tarball dependency can serve different code to different users or CI/CD environments. The attack requires the victim to install a package that has an HTTP/git tarball in its dependency tree. The victim's lockfile provides no protection. This issue is fixed in version 10.26.0.

MITRE

Affected Software

3 affected componentsFixes available
npm/pnpm<10.26.0
10.26.0
PNPM PNPM<10.26.0
PNPM Pnpm Node.js<10.26.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/pnpm to a version that resolves this vulnerability.

    Fixed in 10.26.0
  2. Upgrade

    Upgrade pnpm to a version that resolves this vulnerability.

    Fixed in 10.26.0

Event History

Jan 7, 2026
Advisory Published
via GitHub·07:06 PM
Data Sourced
via GitHub·07:06 PM
DescriptionSeverityWeaknessAffected Software
CVE Published
via MITRE·09:31 PM
Data Sourced
via MITRE·09:31 PM
DescriptionSeverityWeakness
Data Sourced
via Red Hat·10:02 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·10:15 PM
RemedyDescriptionSeverityWeaknessAffected Software
Jan 26, 2026
News Published
via BleepingComputer·02:02 PM
News Published
via BleepingComputer·02:04 PM
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2025-69263?

CVE-2025-69263 is categorized as a moderate severity vulnerability.

2

How do I fix CVE-2025-69263?

To fix CVE-2025-69263, update the pnpm package to version 10.26.0 or later.

3

What causes CVE-2025-69263?

CVE-2025-69263 is caused by HTTP tarball dependencies stored in the lockfile without integrity hashes.

4

Which versions of pnpm are affected by CVE-2025-69263?

pnpm versions prior to 10.26.0 are affected by CVE-2025-69263.

5

What are the potential impacts of CVE-2025-69263?

CVE-2025-69263 allows a remote server to serve different content on each install, leading to inconsistent package installs.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203