Skip to content

SurrealDB

Bug bounty on Sorona surrealdb.com

Accepting reports open-source
Top reward
$1,500
Top severity paid
Critical
Assets in scope
13
Public CVEs
59
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.
Replies within 3 days
As the policy promises.
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
Response
Within 3 days The policy commits to acknowledging a report within three business days, keeping you updated, holding it in confidence, offering safe harbour and crediting you in the resulting advisory
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://surrealdb.com

Products and areas 12

  • Authentication in full, covering root, namespace, database and record users, the signin and signup flows, and session lifetime
  • Custom API routes and the machinery that lets a definition specify the namespace and database a request runs against
  • Embedded scripting functions and the boundary between them and the host process
  • Graph traversal and record links, where a query reaches a record through a relationship rather than by selecting it directly
  • Import, export and backup handling, plus the CLI and the embedded library builds that share the same core
  • Live queries and change feeds, and whether a subscriber keeps receiving rows it has lost the right to see
  • SurrealQL parsing and execution, including parameter binding, subqueries and the places a value can become syntax
  • The HTTP REST surface, the RPC and WebSocket protocol, and any difference in how the two enforce the same check
  • The permission model end to end: table, field and record-level PERMISSIONS clauses, and every place a clause is evaluated for a read, a write or a delete
  • The published policy asks for any security issue privately by email or GitHub advisory and promises acknowledgement, confidentiality, safe harbour and credit in return. It names no assets and carves nothing out, so the SurrealDB tree itself is the boundary
  • The storage engine layer as SurrealDB drives it, covering the in-memory, RocksDB, SurrealKV and TiKV backends
  • Token handling: JWT verification, the algorithms accepted, JWKS fetching and caching, and the claims a token is trusted to assert
Out of scope (6)
  • A deployment where an operator handed out root credentials or ran without authentication, which is a configuration decision
  • Client SDKs maintained in their own repositories, where the defect is in the binding rather than the server
  • Parser crashes already surfaced by the project's OSS-Fuzz integration, which will close as duplicates
  • Resource exhaustion from an expensive query, absent an amplification factor that makes it a genuine denial of service
  • surrealdb/surrealml and other satellite repositories. The model format library is a separate project from the core database
  • Upstream storage engine defects in RocksDB or TiKV, unless SurrealDB'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 privately to the address on the policy page or through the GitHub Security Advisory form on surrealdb/surrealdb .
  • Include the SurrealQL that reproduces it along with the DEFINE statements it runs against.
  • State the authentication level you held: root, namespace, database or record.
  • The SurrealQL parser and executor are fuzzed continuously through OSS-Fuzz, so a plain parser crash is likely known already.

Not accepted

  • Parser crashes already surfaced by the project's OSS-Fuzz integration, which will close as duplicates
  • Upstream storage engine defects in RocksDB or TiKV
  • A deployment where an operator handed out root credentials or ran without authentication
  • Resource exhaustion from an expensive query, absent an amplification factor
  • Client SDKs maintained in their own repositories, where the defect is in the binding rather than the server

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-63763 High 7.5 20 Jul 2026
CVE-2026-63756 Critical 9.2 20 Jul 2026
CVE-2026-63757 High 8.7 20 Jul 2026
CVE-2026-63758 Medium 5.3 20 Jul 2026
CVE-2026-63759 High 7.1 20 Jul 2026
CVE-2026-63760 High 8.7 20 Jul 2026
CVE-2026-63761 Medium 5.3 20 Jul 2026
CVE-2026-63762 Medium 6.0 20 Jul 2026
CVE-2026-63753 Medium 5.3 20 Jul 2026
CVE-2026-63749 Medium 5.3 20 Jul 2026
CVE-2026-63750 Medium 6.9 20 Jul 2026
CVE-2026-63751 Medium 5.3 20 Jul 2026
CVE-2026-63752 Medium 5.3 20 Jul 2026
CVE-2026-63754 High 7.1 20 Jul 2026
CVE-2026-63755 High 7.1 20 Jul 2026
CVE-2026-63742 Medium 5.3 20 Jul 2026
CVE-2026-63743 Medium 5.3 20 Jul 2026
CVE-2026-63744 Medium 5.1 20 Jul 2026
CVE-2026-63745 Medium 5.3 20 Jul 2026
CVE-2026-63746 High 7.1 20 Jul 2026
CVE-2026-63747 High 8.7 20 Jul 2026
CVE-2026-63748 Medium 5.3 20 Jul 2026
CVE-2026-63735 High 8.6 20 Jul 2026
CVE-2026-63736 Medium 5.1 20 Jul 2026
CVE-2026-63737 High 7.1 20 Jul 2026
CVE-2026-63738 Medium 5.3 20 Jul 2026
CVE-2026-63739 High 8.3 20 Jul 2026
CVE-2026-63740 High 7.1 20 Jul 2026
CVE-2026-63741 Medium 6.9 20 Jul 2026
CVE-2026-63733 Medium 5.3 20 Jul 2026
CVE-2026-63734 Medium 6.9 20 Jul 2026
CVE-2025-71392 Critical 9.4 18 Jul 2026
CVE-2025-71393 Medium 6.0 18 Jul 2026
CVE-2025-71394 Low 2.3 18 Jul 2026
CVE-2025-71395 High 7.1 18 Jul 2026
CVE-2025-71396 Low 2.3 18 Jul 2026
CVE-2025-71397 High 7.1 18 Jul 2026
CVE-2025-71398 Medium 5.8 18 Jul 2026
CVE-2024-58366 Critical 9.0 18 Jul 2026
CVE-2024-58367 High 7.1 18 Jul 2026
CVE-2024-58368 High 8.7 18 Jul 2026
CVE-2024-58369 High 7.1 18 Jul 2026
CVE-2024-58370 High 7.1 18 Jul 2026
CVE-2025-71390 Medium 5.8 18 Jul 2026
CVE-2025-71391 High 7.1 18 Jul 2026
CVE-2024-58364 High 7.1 18 Jul 2026
CVE-2024-58365 High 7.1 18 Jul 2026
CVE-2024-58357 High 7.1 18 Jul 2026
CVE-2024-58358 Medium 6.9 18 Jul 2026
CVE-2024-58359 High 7.1 18 Jul 2026
CVE-2024-58361 High 7.1 18 Jul 2026
CVE-2024-58362 High 8.7 18 Jul 2026
CVE-2024-58363 Medium 5.3 18 Jul 2026
CVE-2023-54366 High 8.7 18 Jul 2026
CVE-2024-58356 Low 2.3 18 Jul 2026

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 34 Last 12 months 59 Lifetime Permission bypass 45 % Auth and scope confusion 25 % SSRF and outbound fetch 15 % Query parsing and execution 15 % Latest advisories Loading the feed Overview SurrealDB is a Rust database that puts document, graph and key-value models behind one query language, and its selling point is that clients talk to it directly instead of going through an API tier. The permission system is therefore the only thing between a browser and the data. GHSA-848m-r628-vrxw is the reference point: a custom API route let an authenticated caller override the namespace and database its query ran against, crossing the tenant boundary outright. Thirty-four advisories came out of this project in twelve months, the highest researcher throughput of any database in this study, and none of those reporters were paid. sorona.xyz pays you directly on qualified, reproduced findings. In scope The published policy asks for any security issue privately by email or GitHub advisory and promises acknowledgement, confidentiality, safe harbour and credit in return. It names no assets and carves nothing out, so the SurrealDB tree itself is the boundary The permission model end to end: table, field and record-level PERMISSIONS clauses, and every place a clause is evaluated for a read, a write or a delete Authentication in full, covering root, namespace, database and record users, the signin and signup flows, and session lifetime Token handling: JWT verification, the algorithms accepted, JWKS fetching and caching, and the claims a token is trusted to assert The HTTP REST surface, the RPC and WebSocket protocol, and any difference in how the two enforce the same check Custom API routes and the machinery that lets a definition specify the namespace and database a request runs against SurrealQL parsing and execution, including parameter binding, subqueries and the places a value can become syntax Graph traversal and record links, where a query reaches a record through a relationship rather than by selecting it directly Live queries and change feeds, and whether a subscriber keeps receiving rows it has lost the right to see Embedded scripting functions and the boundary between them and the host process The storage engine layer as SurrealDB drives it, covering the in-memory, RocksDB, SurrealKV and TiKV backends Import, export and backup handling, plus the CLI and the embedded library builds that share the same core Out of scope surrealdb/surrealml and other satellite repositories. The model format library is a separate project from the core database Upstream storage engine defects in RocksDB or TiKV, unless SurrealDB's own use of them is what makes the issue reachable Parser crashes already surfaced by the project's OSS-Fuzz integration, which will close as duplicates A deployment where an operator handed out root credentials or ran without authentication, which is a configuration decision Resource exhaustion from an expensive query, absent an amplification factor that makes it a genuine denial of service Client SDKs maintained in their own repositories, where the defect is in the binding rather than the server Most-valued findings Permission clause bypass in any direction. The densest part of the record: writes performed inside a PERMISSIONS clause escaped table permissions in GHSA-66r2-5gwj-gxm2, and field-level SELECT permissions were defeated through graph and reference traversal in GHSA-hv6h-hc26-q48p Namespace or database scope override, the GHSA-848m-r628-vrxw shape, where a caller runs against a tenant it was never authenticated into. On a database this multi-tenant, that is the ceiling Anything that reaches a record through a relationship, a reference or a nested query when a direct select on it would have been refused Token and JWKS handling: a JWKS URL resolving to a private address gave server-side request forgery in GHSA-5x4x-2946-qr67, and the same code path decides which keys sign a trusted token Authentication defects in record-level users, where the signup and signin logic is written by the application author but enforced by the engine Injection into SurrealQL through a parameter, a field name or a definition, particularly anywhere a caller-supplied value is concatenated rather than bound Memory safety and panics in the Rust core that a remote caller can reach, given how many deployments expose the database directly to untrusted clients 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 privately to [email protected] or through the GitHub Security Advisory form on surrealdb/surrealdb . The policy publishes both, and the security.txt confirms them with a policy URL and preferred languages The policy commits to acknowledging a report within three business days, keeping you updated, holding it in confidence, offering safe harbour and crediting you in the resulting advisory Include the SurrealQL that reproduces it along with the DEFINE statements it runs against. Most of this project's record turns on the interaction between a schema definition and a query, so a bare query is not reproducible State the authentication level you held: root, namespace, database or record. Almost the whole 2026 record is about a caller acting above the level it was granted The SurrealQL parser and executor are fuzzed continuously through OSS-Fuzz, so a plain parser crash is likely known already. The permission and authentication surface is where the unclaimed ground is There is no reward language anywhere in the policy. Acknowledgement, safe harbour and credit are the whole of what the project offers Disclosure Coordinated privately by email or through the GitHub advisory form, with acknowledgement promised inside three business days, then published as a GHSA against a fixed release with the reporter credited. Volume is the thing to plan around. Thirty-four advisories in twelve months means your report joins a queue that clears in release batches, so expect the embargo to run to the next security release rather than to a fixed day count. 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