Skip to content

Payload CMS

Bug bounty on Sorona payloadcms.com

Accepting reports open-source
Top reward
$1,500
Top severity paid
Critical
Assets in scope
12
Public CVEs
35
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://payloadcms.com

Products and areas 11

  • Authentication end to end: the auth-enabled collection, JWT issuance and verification, refresh, logout, password reset, email verification and API keys
  • Drafts, versions and scheduled publishing, which hold unpublished content behind an access rule
  • Hooks and the lifecycle they run in, where a hook observes or mutates a document with more authority than the request that triggered it
  • The access-control functions themselves: the per-collection and per-field read, create, update and delete rules, and the query constraints they return
  • The admin panel and the Next.js routes it mounts into the host application, along with the components that render user-supplied field data
  • The database adapters and the query layer, covering how a where clause supplied by a request becomes a database query
  • The Local API, which runs in-process inside the host Next.js application and can bypass HTTP-layer assumptions entirely
  • The plugin interface and the first-party plugins built on it
  • The published policy is three lines naming a security address and the GitHub advisory flow. It declares no scope boundary at all, so the whole of the Payload codebase and the @payloadcms/* packages are the target
  • The REST API and the GraphQL API, both generated from a project's collections and both gated by the same access functions
  • Upload-enabled collections, image resizing and the storage adapters that put files somewhere the app serves them from
Out of scope (6)
  • Access-control functions an application developer wrote incorrectly in their own project, rather than a defect in how Payload evaluates them
  • Deployment configuration, including a secret committed to a repository or an admin panel exposed without a network boundary
  • Figma's own properties, which belong to Figma's paid HackerOne program and are not this codebase
  • The policy publishes no exclusions of its own, so nothing else is carved out by name. What follows are genuine out-of-scope classes
  • Third-party community plugins and storage adapters that are not part of the Payload monorepo
  • Upstream Next.js, Node and database dependencies, unless Payload's own use of them is what makes the issue reachable

Rules

What the policy asks of you, and the bug types it won't reward, quoted from Sorona's policy.

While testing

  • Submit through sorona.xyz.
  • Report to the address on the policy page or through GitHub private vulnerability reporting on payloadcms/payload .
  • Name the Payload version, the Next.js version and the database adapter

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-106100 High 7.1 6 Oct 2026
CVE-2026-105863 Critical 9.2 6 Oct 2026
CVE-2026-105864 Medium 5.3 6 Oct 2026
CVE-2026-105865 High 8.1 6 Oct 2026
CVE-2026-105866 Medium 6.9 6 Oct 2026
CVE-2026-105867 High 7.1 6 Oct 2026
CVE-2026-105868 High 8.6 6 Oct 2026
CVE-2026-105856 High 8.6 6 Oct 2026
CVE-2026-105857 Critical 10.0 6 Oct 2026
CVE-2026-105858 High 8.1 6 Oct 2026
CVE-2026-105859 Critical 9.8 6 Oct 2026
CVE-2026-105860 High 7.1 6 Oct 2026
CVE-2026-105861 High 7.2 6 Oct 2026
CVE-2026-105862 High 8.7 6 Oct 2026
CVE-2026-105850 High 8.8 6 Oct 2026
CVE-2026-105851 Critical 9.3 6 Oct 2026
CVE-2026-105852 Medium 6.9 6 Oct 2026
CVE-2026-105853 High 7.1 6 Oct 2026
CVE-2026-105854 High 8.7 6 Oct 2026
CVE-2026-105855 High 7.6 6 Oct 2026
CVE-2026-105846 Medium 6.1 6 Oct 2026
CVE-2026-105847 High 7.1 6 Oct 2026
CVE-2026-105848 Medium 6.4 6 Oct 2026
CVE-2026-105849 High 7.7 6 Oct 2026
CVE-2026-34746 High 7.7 1 Apr 2026
CVE-2026-34747 High 8.5 1 Apr 2026
CVE-2026-34748 High 8.7 1 Apr 2026
CVE-2026-34749 Medium 5.4 1 Apr 2026
CVE-2026-34750 Medium 6.5 1 Apr 2026
CVE-2026-34751 Critical 9.1 1 Apr 2026
CVE-2026-27567 Medium 6.5 24 Feb 2026
CVE-2026-25544 Critical 9.8 6 Feb 2026
CVE-2026-25574 Medium 5.4 6 Feb 2026
CVE-2023-30843 High 7.4 26 Apr 2023
CVE-2022-27952 Critical 9.8 12 Apr 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 9 Last 12 months 10 Lifetime Access control 40 % Auth bypass 25 % Info disclosure 20 % Injection 15 % Latest advisories Loading the feed Overview Payload is a TypeScript headless CMS that installs into a Next.js application rather than sitting beside it, so its access-control layer runs in the same process as the app it protects. Around 2.17 million npm installs a month. Figma acquired it in 2025 and runs a paid HackerOne program, and Payload appears nowhere in that program's scope: the word does not occur anywhere in the program's JSON or policy, and the policy was last changed in December 2025, after the acquisition, without adding it. Nine of Payload's ten lifetime advisories landed in the last twelve months, two of them critical. sorona.xyz pays you directly on qualified, reproduced findings. In scope The published policy is three lines naming a security address and the GitHub advisory flow. It declares no scope boundary at all, so the whole of the Payload codebase and the @payloadcms/* packages are the target The access-control functions themselves: the per-collection and per-field read, create, update and delete rules, and the query constraints they return The REST API and the GraphQL API, both generated from a project's collections and both gated by the same access functions The Local API, which runs in-process inside the host Next.js application and can bypass HTTP-layer assumptions entirely Authentication end to end: the auth-enabled collection, JWT issuance and verification, refresh, logout, password reset, email verification and API keys The admin panel and the Next.js routes it mounts into the host application, along with the components that render user-supplied field data Upload-enabled collections, image resizing and the storage adapters that put files somewhere the app serves them from Hooks and the lifecycle they run in, where a hook observes or mutates a document with more authority than the request that triggered it The database adapters and the query layer, covering how a where clause supplied by a request becomes a database query Drafts, versions and scheduled publishing, which hold unpublished content behind an access rule The plugin interface and the first-party plugins built on it Out of scope Figma's own properties, which belong to Figma's paid HackerOne program and are not this codebase The policy publishes no exclusions of its own, so nothing else is carved out by name. What follows are genuine out-of-scope classes Access-control functions an application developer wrote incorrectly in their own project, rather than a defect in how Payload evaluates them Upstream Next.js, Node and database dependencies, unless Payload's own use of them is what makes the issue reachable Third-party community plugins and storage adapters that are not part of the Payload monorepo Deployment configuration, including a secret committed to a repository or an admin panel exposed without a network boundary Most-valued findings Access-control evaluation defects: a request reaching a document, a field or an operation the collection's access functions were supposed to deny. Nine advisories landed in the window and this is the layer the entire product is Anything that produces an authenticated session without credentials, or that escalates between users on an auth-enabled collection. Two criticals landed in the window Field-level access leaking through the GraphQL schema or through a populated relationship, where a field denied on a direct read comes back via another route JWT and API key handling, covering issuance, verification, expiry and any token that reaches a collection it was not scoped for Password reset and email verification flows, which mint authority from an unauthenticated request Query construction from where clauses and populate parameters, where request input reaches the database adapter Upload handling and the storage adapter interface, where a file lands somewhere the host application serves or executes it Draft and version endpoints returning unpublished content to a request that should only see published documents 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 to [email protected] or through GitHub private vulnerability reporting on payloadcms/payload . Every published advisory went through the GitHub flow The SECURITY.md is three lines long. There is no scope statement, no exclusions list, no reward language and no response SLA to hold anyone to payloadcms.com/security is a marketing page about security features rather than a reporting channel, and the domain publishes no security.txt Figma's paid HackerOne program does not cover Payload. Its eight in-scope assets are all Figma's own properties and its stated focus is unauthorized access to Figma user data Name the Payload version, the Next.js version and the database adapter, since the CMS runs inside the host application and the adapter changes the query surface No payment exists on either side of the acquisition, so there is nothing to negotiate Disclosure Coordinated through the GitHub advisory flow and published as a GHSA on payloadcms/payload alongside a patched release. Publication is batched, with six of the ten lifetime advisories landing together on 30 March 2026, so plan for an embargo that runs to the next release rather than to a published day count. Nothing about timing is written down, so agree a date in the advisory thread. 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