Skip to content

pnpm

Bug bounty on Sorona pnpm.io

Accepting reports open-source
Top reward
$1,500
Top severity paid
Critical
Assets in scope
12
Public CVEs
28
Last change
No changes yet

At a glance

What to know before you start testing.

Pays from $1,500
for critical bugs.
Partial safe harbor
Some legal protection; read the terms.
Publish after a fix
Coordinate the timing with the company.

Rewards

What Sorona lists as the payout for each severity.

Severity Reward
Critical $1,500+
High $700+
Medium $300+
Low $100 $100 / 1 month Claude Max
Safe harbor
Partial Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf.

Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original

Scope

12 assets you may test, 6 excluded.

Web 1

  • https://pnpm.io

Products and areas 11

  • Configuration and credential handling: .npmrc at every level, per-registry auth tokens and any path that could send one to the wrong host
  • Integrity checking on downloaded packages, including the hashes recorded in the lockfile and what happens when one fails to match
  • Lifecycle script execution and the controls that decide which dependencies are permitted to run build scripts
  • Lockfile handling in full, covering pnpm-lock.yaml parsing, resolution replay and what a lock entry is taken to guarantee
  • Package extraction and file placement, including path handling for entries inside a tarball
  • pnpm dlx and pnpm exec, plus the patching mechanism behind pnpm patch
  • The CLI's own installation and self-update path, which fetches and then executes the binary that runs every later install
  • The content-addressable store, its indexing, and the hard links and symlinks it projects into a project's node_modules
  • 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
  • The registry client: resolution requests, tarball fetching, redirect handling and what a registry response is allowed to change
  • Workspace resolution across a monorepo, the workspace: protocol, catalogs and overrides
Out of scope (6)
  • 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

Rules

What the policy asks of you, and the bug types it won't reward, quoted from Sorona's policy. "We" in these lines means Sorona, not this site.

While testing

  • Submit through sorona.xyz. This project runs no bounty of its own; we validate, coordinate disclosure with the maintainers, and pay you directly.
  • Report through the GitHub advisory form at github.com/pnpm/pnpm/security/advisories , the channel SECURITY.md names, with private vulnerability reporting confirmed enabled
  • Read the threat model before you spend time.
  • Include the pnpm-lock.yaml , the registry configuration and the exact command, since resolution behaviour is the subject of most of the real surface here

Not accepted

  • Anything that starts from attacker write access to the store, the lockfile, node_modules or pnpm's configuration
  • pacquet and pnpr , which the policy places outside the advisory process
  • Releases outside the supported 10.x and 11.x lines
  • Malicious packages published to the npm registry, which is registry abuse rather than a pnpm defect
  • The npm registry service and npm's own CLI, both of which are GitHub's and one of which pays
  • Node.js itself, a separate upstream with its own reporting path

Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original

Changes

Tracked since 11 Nov 2026. Last checked 1 hour ago.

No changes yet. When the rewards or scope move, you will see it here and in the RSS feed.

Public CVEs

Published vulnerabilities in this vendor's products, from the NVD.

Search NVD
CVESeverityPublished
CVE-2026-59194 High 7.1 6 Jul 2026
CVE-2026-59195 High 8.2 6 Jul 2026
CVE-2026-59196 High 7.1 6 Jul 2026
CVE-2026-55697 High 7.5 25 Jun 2026
CVE-2026-55698 High 8.8 25 Jun 2026
CVE-2026-55699 Medium 6.5 25 Jun 2026
CVE-2026-55700 High 7.1 25 Jun 2026
CVE-2026-50021 Medium 6.8 25 Jun 2026
CVE-2026-50573 Medium 6.8 25 Jun 2026
CVE-2026-55180 Medium 6.5 25 Jun 2026
CVE-2026-55487 High 7.5 25 Jun 2026
CVE-2026-48995 Medium 4.8 25 Jun 2026
CVE-2026-50014 Medium 6.4 25 Jun 2026
CVE-2026-50015 High 7.3 25 Jun 2026
CVE-2026-50016 High 8.8 25 Jun 2026
CVE-2026-50017 Medium 6.9 25 Jun 2026
CVE-2026-24056 Medium 6.7 26 Jan 2026
CVE-2026-24131 Medium 6.7 26 Jan 2026
CVE-2026-23888 Medium 6.5 26 Jan 2026
CVE-2026-23889 Medium 6.5 26 Jan 2026
CVE-2026-23890 Medium 6.5 26 Jan 2026
CVE-2025-69262 High 7.5 7 Jan 2026
CVE-2025-69263 High 7.5 7 Jan 2026
CVE-2025-69264 High 8.8 7 Jan 2026
CVE-2024-47829 Medium 6.5 23 Apr 2025
CVE-2024-53866 Medium 5.8 10 Dec 2024
CVE-2023-37478 High 7.5 1 Aug 2023
CVE-2022-26183 High 8.8 21 Mar 2022

Original policy

Copied from sorona.xyz on 12 Nov 2026. The summaries on this page are made from it; the live page may have changed since.

Skip to content What this pays This project runs no bounty of its own. sorona.xyz pays you directly on qualified, reproduced findings. Severity │ sorona.xyz pays Critical │ $1,500+ High │ $700+ Medium │ $300+ Low │ $100 / 1 month Claude Max Submit a vulnerability CVE history 24 Last 12 months 27 Lifetime Integrity bypass 35 % Code execution 30 % Path handling 20 % Info disclosure 15 % Latest advisories Loading the feed Overview pnpm installs Node dependencies for a large share of modern JavaScript monorepos and the pipelines that build them, using a content-addressable store and a linked node_modules in place of copied trees. An install is the first thing that runs on any checkout, with the build's privileges, before a line of the project's own code has been reviewed. A resolution or integrity defect therefore places attacker code on every machine that installs the same lockfile. pnpm's security policy states that it operates no bounty program, and being outside GitHub's ownership it is outside GitHub's bounty too, so sorona.xyz pays you directly on qualified, reproduced findings. In scope 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 The registry client: resolution requests, tarball fetching, redirect handling and what a registry response is allowed to change Lockfile handling in full, covering pnpm-lock.yaml parsing, resolution replay and what a lock entry is taken to guarantee Integrity checking on downloaded packages, including the hashes recorded in the lockfile and what happens when one fails to match The content-addressable store, its indexing, and the hard links and symlinks it projects into a project's node_modules Package extraction and file placement, including path handling for entries inside a tarball Lifecycle script execution and the controls that decide which dependencies are permitted to run build scripts Workspace resolution across a monorepo, the workspace: protocol, catalogs and overrides Configuration and credential handling: .npmrc at every level, per-registry auth tokens and any path that could send one to the wrong host pnpm dlx and pnpm exec , plus the patching mechanism behind pnpm patch The CLI's own installation and self-update path, which fetches and then executes the binary that runs every later install Out of scope 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 pacquet and pnpr , which the policy places outside the advisory process Releases outside the supported 10.x and 11.x lines Malicious packages published to the npm registry, which is registry abuse rather than a pnpm defect The npm registry service and npm's own CLI, both of which are GitHub's and one of which pays Node.js itself, a separate upstream with its own reporting path Most-valued findings Integrity bypass: any path where the tarball installed differs from the content the lockfile hash pinned, or where a mismatch is tolerated. The entire model rests on that check Lifecycle script execution that happens without the dependency having been permitted to run one, or that fires earlier in the install than the controls expect Extraction and link handling that writes outside the intended package directory, since a symlink or traversal escaping node_modules reaches the project source and the runner's own filesystem Registry and redirect handling where one host's response satisfies a package another host was meant to serve, and any credential that follows a redirect off its configured origin Workspace protocol confusion, where a local package satisfies a requirement intended for the registry or the reverse, which is a monorepo-shaped dependency confusion Lockfile parsing defects that change what resolves. The lockfile is the artefact reviewers skim and every CI run replays, so a divergence between how a human reads it and how pnpm reads it is worth more here than a crash Program rules Submit through sorona.xyz. This project runs no bounty of its own; we validate, coordinate disclosure with the maintainers, and pay you directly. Report through the GitHub advisory form at github.com/pnpm/pnpm/security/advisories , the channel SECURITY.md names, with private vulnerability reporting confirmed enabled Read the threat model before you spend time. pnpm declares the content-addressable store is not a security boundary against a local adversary who can already write to it, so anything that assumes attacker write access to the store, the lockfile, node_modules or the config is out of scope The Rust port pacquet and the resolver server pnpr are stated to sit outside the advisory process Supported versions are the 10.x and 11.x lines, with support running to 30 April 2027. A finding against an older line has nowhere to be fixed Include the pnpm-lock.yaml , the registry configuration and the exact command, since resolution behaviour is the subject of most of the real surface here There is no bounty program. The policy says so directly and there are no reward terms to accept Disclosure Coordinated through GitHub private vulnerability reporting on pnpm/pnpm and published as a GitHub Security Advisory alongside a release. The policy documents supported versions and a threat model but sets no response target, so agree the embargo in the advisory thread. Fixes land on the 10.x and 11.x lines; anything older is out of support and will not receive one. Safe harbor Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf. You are responsible for understanding and following the laws that apply to you, wherever you are, and for staying within any scope the project has defined. Submit a vulnerability