Skip to content

Saleor

Bug bounty on Sorona saleor.io

Accepting reports open-source
Top reward
$1,500
Top severity paid
Critical
Assets in scope
13
Public CVEs
16
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

13 assets you may test, 6 excluded.

Web 1

  • https://saleor.io

Products and areas 12

  • Authentication and token handling: JWT issuance, refresh tokens, the external authentication plugins and any impersonation feature
  • Payment orchestration, including the transaction API, payment gateway plugins and the webhook path a gateway uses to report a completed payment
  • Product, media and file upload handling
  • Public and private metadata on every object, the mechanism most often used to hang internal data off a customer-visible entity
  • The anonymous storefront surface, the queries a visitor with no account can reach at all
  • The app framework and its webhook signing, where a third-party application receives events and holds a token against the API
  • The checkout flow end to end: line pricing, discounts, vouchers, gift cards, shipping method selection and tax calculation
  • The GraphQL API in full: every query, every mutation and every subscription, along with the permission check applied to each
  • The multi-channel model, where one Saleor instance serves several storefronts with separate pricing, availability and currency
  • The permission model itself, covering staff permission groups, app tokens, the customer and staff boundary and the per-channel restrictions layered on top
  • The policy takes private reports on Saleor through GitHub or a dedicated address and states no component carve-out beyond its own reporting requirements, so the whole backend is in scope
  • The staff dashboard's use of the API, and every operation it performs on a staff user's behalf
Out of scope (6)
  • AI-generated submissions without a verified reproduction, which the policy rules out by name
  • Deployment configuration, including an instance run with debug enabled or with the dashboard exposed against the documentation's advice
  • Payment gateway providers' own systems, which are separate estates
  • Storefront code a merchant writes themselves, which is their application rather than Saleor
  • Third-party Saleor apps and plugins maintained outside the repository
  • Upstream Python and Django dependency issues, unless Saleor's own use of the dependency is what makes the defect reachable

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 a GitHub private security advisory on saleor/saleor, which is enabled, or by email to the address on the policy page
  • The policy lists what a report must contain. A submission missing those parts gets bounced, so work through the list before sending
  • The policy rejects AI-generated reports explicitly. Send a verified reproduction against a current release, not a model's writeup of a scanner result
  • Give the exact GraphQL operation, the permissions your token held and the channel you operated in. Saleor's authorisation is per-permission and per-channel, so a report without that cannot be reproduced
  • Say whether you reproduced against the open-source Saleor core or against Saleor Cloud, since the hosted service adds surface the repository does not carry
  • There is no reward tier and no payment to negotiate

Not accepted

  • AI-generated submissions without a verified reproduction
  • Upstream Python and Django dependency issues, unless Saleor's own use of the dependency is what makes the defect reachable
  • Deployment configuration, including an instance run with debug enabled or with the dashboard exposed against the documentation's advice

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-39851 Medium 5.3 8 Apr 2026
CVE-2026-35401 High 7.5 8 Apr 2026
CVE-2026-35407 Medium 5.9 8 Apr 2026
CVE-2026-33756 High 7.5 8 Apr 2026
CVE-2026-24136 High 8.7 24 Jan 2026
CVE-2026-22849 High 7.2 21 Jan 2026
CVE-2026-23499 High 8.5 21 Jan 2026
CVE-2024-31205 Medium 4.2 8 Apr 2024
CVE-2024-29888 Medium 4.2 27 Mar 2024
CVE-2024-29036 Medium 4.3 20 Mar 2024
CVE-2023-3294 Medium 6.1 16 Jun 2023
CVE-2023-32694 Medium 4.8 25 May 2023
CVE-2023-26051 Medium 6.5 2 Mar 2023
CVE-2023-26052 Low 3.7 2 Mar 2023
CVE-2022-39275 Medium 5.3 6 Oct 2022
CVE-2022-0932 Medium 6.5 11 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 10 Last 12 months 16 Lifetime Access control 38 % Info disclosure 24 % Business logic 22 % Auth/token handling 16 % Latest advisories Loading the feed Overview Saleor is a Python and GraphQL commerce backend used by enterprise retail as the order and checkout engine behind a storefront built separately. Everything reaches it through one GraphQL endpoint, so the authorisation decision for every query and mutation is made in a single layer and a permission gap there is reachable from the open internet. Checkout and payment orchestration run through that same API. The project publishes a dedicated section stating it has no bounty programme and cannot offer monetary rewards for anything reported, and ten of its sixteen published advisories arrived in the last twelve months. sorona.xyz pays you directly on qualified, reproduced findings. In scope The policy takes private reports on Saleor through GitHub or a dedicated address and states no component carve-out beyond its own reporting requirements, so the whole backend is in scope The GraphQL API in full: every query, every mutation and every subscription, along with the permission check applied to each The permission model itself, covering staff permission groups, app tokens, the customer and staff boundary and the per-channel restrictions layered on top The checkout flow end to end: line pricing, discounts, vouchers, gift cards, shipping method selection and tax calculation Payment orchestration, including the transaction API, payment gateway plugins and the webhook path a gateway uses to report a completed payment The app framework and its webhook signing, where a third-party application receives events and holds a token against the API Authentication and token handling: JWT issuance, refresh tokens, the external authentication plugins and any impersonation feature The multi-channel model, where one Saleor instance serves several storefronts with separate pricing, availability and currency Public and private metadata on every object, the mechanism most often used to hang internal data off a customer-visible entity Product, media and file upload handling The staff dashboard's use of the API, and every operation it performs on a staff user's behalf The anonymous storefront surface, the queries a visitor with no account can reach at all Out of scope Storefront code a merchant writes themselves, which is their application rather than Saleor Third-party Saleor apps and plugins maintained outside the repository Payment gateway providers' own systems, which are separate estates Upstream Python and Django dependency issues, unless Saleor's own use of the dependency is what makes the defect reachable Deployment configuration, including an instance run with debug enabled or with the dashboard exposed against the documentation's advice AI-generated submissions without a verified reproduction, which the policy rules out by name Most-valued findings Permission checks applied in the resolver rather than uniformly, so one query or mutation returns data a token was never granted. On a single-endpoint API this is the densest class by far and the whole product funnels through it Anything reachable from the anonymous storefront surface that returns staff data, another customer's order or an internal object Private metadata leaking into a customer-visible query, which is the most common way commercial detail escapes on this architecture Checkout total manipulation through vouchers, gift cards, discounts, shipping or tax, where a mutation sequence produces a paid order for less than the goods are worth Payment webhook and transaction API forgery that marks an order paid without a genuine gateway response App token scope defects, where an installed application acts beyond the permissions it was granted Cross-channel access, where a token scoped to one channel reads or writes another channel's pricing, orders or customers JWT and refresh token handling, including signature validation, expiry and any path that issues a staff token to a customer GraphQL-specific abuse that reaches data rather than just load: introspection revealing restricted fields, aliasing and batching around a per-operation check, and deeply nested queries that pull related objects past their permission boundary Unauthorised retrieval of customer records or order history through an unchecked identifier 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 a GitHub private security advisory on saleor/saleor, which is enabled, or by email to [email protected] The policy lists what a report must contain. A submission missing those parts gets bounced, so work through the list before sending The policy rejects AI-generated reports explicitly. Send a verified reproduction against a current release, not a model's writeup of a scanner result Give the exact GraphQL operation, the permissions your token held and the channel you operated in. Saleor's authorisation is per-permission and per-channel, so a report without that cannot be reproduced Say whether you reproduced against the open-source Saleor core or against Saleor Cloud, since the hosted service adds surface the repository does not carry There is no reward tier and no payment to negotiate Disclosure Coordinated privately through a GitHub advisory or the security address, and published as a GitHub Security Advisory once a fix ships. The policy is well developed for a project this size, with a required-contents list and stated expectations on both sides. No fixed embargo length is published. Time disclosure to the release carrying the fix, and remember that Saleor deployments are usually pinned inside a merchant's own infrastructure, so the exposure window outlasts the advisory. 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