High priorityDisclosed

Advisory · CVE-2026-102876

SurrealDB header confusion lets one tenant read another's data

SurrealDB before 3.3.0 verifies credentials against the Surreal-Auth-NS and Surreal-Auth-DB headers but builds the session from the unauthenticated Surreal-NS and Surreal-DB headers, letting an authenticated user cross tenant boundaries.

Vendor
SurrealDB
Product
SurrealDB
Identifier / CWE
CVE-2026-102876
CWE-639
Action timing
Immediate
ELI5

Explain it like I’m five

SurrealDB checks your ID badge against one set of door labels, but then walks you through a different door you named yourself. An authenticated user can point at another tenant's door and be let into their rooms.

SIMPLIFIED_ATTACK_PATH04 STEPS
  1. 01Authenticated request

    An attacker with a valid SurrealDB account in one tenant sends an HTTP request.

  2. 02Header mismatch

    check_auth() validates credentials against Surreal-Auth-NS and Surreal-Auth-DB.

  3. 03Session built from other headers

    The session is constructed from the unvalidated Surreal-NS and Surreal-DB headers instead.

  4. 04Cross-tenant access

    The attacker reads, creates, and modifies records in another tenant's namespace and database.

What happened

A cross-tenant authorization bypass was disclosed in SurrealDB. Versions before 3.3.0 verify credentials against the Surreal-Auth-NS and Surreal-Auth-DB headers but construct sessions from the separate Surreal-NS and Surreal-DB headers without validating access permissions. An attacker who is authenticated as a user of one tenant can select another tenant’s namespace and database to read, create, and modify records. It carries a CVSS 4.0 score of 8.6 (high).

What to do

  1. Upgrade SurrealDB to 3.3.0 or later on all nodes.
  2. Treat the exposure window as a data-access event, not just a patch task.
  3. Review query and access logs for sessions whose auth namespace and selected namespace diverged.
  4. Identify which records were read or modified across tenant boundaries during the window.
  5. Notify affected tenants and rotate credentials where cross-tenant access cannot be excluded.

Management note

Multi-tenant isolation is the contract SurrealDB sells, and this flaw breaks it with nothing more than HTTP headers. If you host other people’s data on affected versions, the incident question is not whether you can patch, but whether tenant data stayed separated while you were exposed.