pnpm bug bounty programs
pnpm.io Updated
Pnpm runs one public program: a Sorona bug bounty paying up to $1,500.
- Top reward
- $1,500
- Sorona
- Programs
- 1
- 1 pays cash
- Targets in scope
- 12
- 2 types
- Last change
- None yet
- Tracked since Nov 2026
Where to report
The one public program pnpm runs.
| Program | Critical | High | Medium | Low | Top reward | Safe harbor | KYC | First response | Status |
|---|---|---|---|---|---|---|---|---|---|
|
pnpm
Sorona · Bug bounty |
– | – | – | $100 | $1,500 | Partial | – | – | Open |
-
- Critical
- –
- High
- –
- Medium
- –
- Low
- $100
- Safe harbor
- Partial
Amounts are the top reward per severity in the currency each program pays. First response is the platform's measured average when it publishes one, else what the policy promises.
What is in scope
12 targets. 6 excluded.
-
https://pnpm.io
Web
-
Configuration and credential handling: .npmrc at every level, per-registry auth tokens and any path that could send one to the wrong host
Products and areas
-
Integrity checking on downloaded packages, including the hashes recorded in the lockfile and what happens when one fails to match
Products and areas
-
Lifecycle script execution and the controls that decide which dependencies are permitted to run build scripts
Products and areas
-
Lockfile handling in full, covering pnpm-lock.yaml parsing, resolution replay and what a lock entry is taken to guarantee
Products and areas
-
Package extraction and file placement, including path handling for entries inside a tarball
Products and areas
-
pnpm dlx and pnpm exec, plus the patching mechanism behind pnpm patch
Products and areas
-
The CLI's own installation and self-update path, which fetches and then executes the binary that runs every later install
Products and areas
-
The content-addressable store, its indexing, and the hard links and symlinks it projects into a project's node_modules
Products and areas
-
The policy accepts vulnerabilities in supported pnpm releases, currently the 10.x and 11.x lines, through the GitHub advisory form. Its threat model is the real boundary: anything presupposing an attacker who can already write to the store, the lockfile, node_modules or the configuration is excluded
Products and areas
-
The registry client: resolution requests, tarball fetching, redirect handling and what a registry response is allowed to change
Products and areas
-
Workspace resolution across a monorepo, the workspace: protocol, catalogs and overrides
Products and areas
No target matches. Try part of a host name, such as the company name.
Out of scope 6
Don't test these. A program can exclude a host another program covers; the program you report to decides.
-
Anything that starts from attacker write access to the store, the lockfile, node_modules or pnpm's configuration. The threat model rules this out by name
-
Malicious packages published to the npm registry, which is registry abuse rather than a pnpm defect
-
Node.js itself, a separate upstream with its own reporting path
-
pacquet and pnpr, which the policy places outside the advisory process
-
Releases outside the supported 10.x and 11.x lines
-
The npm registry service and npm's own CLI, both of which are GitHub's and one of which pays
Recent changes
Reward and scope changes across every pnpm program, newest first.
No changes recorded yet. New targets and reward moves show up here and in the RSS feed.
Recent CVEs
Published vulnerabilities in pnpm products, from the NVD.
-
CVE-2026-59194 High
pnpm is a package manager. Prior to 10.34.4 and 11.7.0, a crafted patch entry could resolve outside the configured patches directory and cause pnpm patch-remove to delete an arbitrary reachable file. This vulnerability is fixed in 10.34.4 and 11.7.0.
-
CVE-2026-59195 High
pnpm is a package manager. Prior to 10.34.4 and 11.8.0, pnpm accepts package names from the env lockfile configDependencies section and uses those names directly when creating config dependency symlinks under node_modules/.pnpm-config. A malicious repository can commit a crafted pnpm-lock.yaml whose env-lockfile document contains a traversal-shaped config dependency name. During pnpm install, pnpm
-
CVE-2026-59196 High
pnpm is a package manager. Prior to 10.34.4 and 11.7.0, a crafted lockfile alias could be joined directly under a hoisted node_modules directory. Traversal aliases could escape that directory, while reserved aliases such as .bin or .pnpm could overwrite pnpm-owned layout. This vulnerability is fixed in 10.34.4 and 11.7.0.
-
CVE-2026-55697 High
pnpm is a package manager. Prior to 10.34.2 and 11.5.3, pnpm can install configDependencies declared in pnpm-workspace.yaml before command dispatch. Before the patch, a repository could declare pacquet or @pnpm/pacquet as a config dependency and pnpm treated that repository-controlled dependency as an install-engine opt-in. During install, pnpm resolved a platform-specific @pacquet/<platform>-<arc
-
CVE-2026-55698 High
pnpm is a package manager. Prior to 10.34.2 and 11.5.3, pnpm can persist package-manager bootstrap metadata in the first YAML document of pnpm-lock.yaml. Before the patch, direct pnpm execution trusted an already resolved packageManagerDependencies entry when the committed env lockfile contained matching pnpm and @pnpm/exe versions. A malicious repository could therefore commit package-manager loc
-
CVE-2026-55699 Medium
pnpm is a package manager. Prior to 10.34.2 and 11.5.3, Manifest bin object keys such as "", ".", and ".." passed pnpm's bin-name guard. When a malicious package was installed globally, later global remove, update, or add-replacement flows could re-derive those names from the installed manifest and pass path.join(globalBinDir, binName) to removeBin. For "." this targets the global bin directory; f
-
CVE-2026-55700 High
pnpm is a package manager. From 11.3.0 until 11.5.3, `pnpm stage download` derived a local filename from registry-controlled package name and version fields. A crafted manifest could escape the selected download directory and overwrite another reachable file. The merged fix validates both fields, derives one safe filename, and verifies the final destination before writing. This vulnerability is fi
-
CVE-2026-50021 Medium
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 witho
About this page
This page gathers every public program listed under pnpm.io: platform programs, self-hosted policies and security.txt contacts. Each program's own policy decides what is in scope and what it pays; check it before you test.
Something wrong or missing? Report a correction.