Skip to main content

SurrealDB CVE-2026-63755

| EUVDEUVD-2026-45926 HIGH
Incorrect Authorization (CWE-863)
2026-07-20 disclosure@vulncheck.com GHSA-4f9v-jpx9-mjvw
7.1
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege Record/Scope user
  2. Delivery
    Craft SELECT with side-effecting WHERE clause
  3. Exploit
    Engine evaluates expression before permission check
  4. Execution
    Exfiltrate via scripting/THROW/timing channel
  5. Impact
    Read protected table contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must hold valid authentication to the target database at any privilege level (CVSS PR:L), including the lowest-trust Record or Scope users, and must be able to submit SELECT or update-variant (UPDATE/UPSERT/INSERT ON DUPLICATE KEY UPDATE/RELATE) statements with an attacker-controlled WHERE, SET, MERGE, CONTENT, or PATCH clause. Direct, high-bandwidth exfiltration additionally requires the server to be started with --allow-scripting / -A; without it, exploitation still works but is limited to lower-bandwidth THROW-based error leakage and timing side channels. Limiting factors: exploitation cannot cross the current database boundary - tables in other databases or namespaces are unreachable - and it requires the ability to run arbitrary queries, so deployments that proxy or template all queries and forbid user-supplied clauses substantially raise the bar.

Impact

The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H) scores 7.1 and is internally consistent with the description: network-reachable, low complexity, requires low-privilege authentication (PR:L), and yields high confidentiality impact with no integrity or availability impact - matching a read-only permission-bypass that discloses arbitrary table data. There is no EPSS score, KEV entry, or public POC in the provided data, so this is a real but not yet mass-exploited priority: exploitation requires valid credentials on the target database, which caps opportunistic internet-wide abuse but makes it highly relevant for any multi-tenant deployment relying on table-level permissions to separate low-trust Record/Scope users. Signals are consistent with no conflicts; the main uncertainty is real-world exploitation likelihood, which cannot be quantified without EPSS. The scripting-enabled (--allow-scripting) path is the most direct, but the vendor confirms THROW-based and timing-based extraction work even in hardened configurations, so disabling scripting alone does not neutralize the risk.

Exploit ScenarioDerived

A low-privilege Record or Scope user authenticated to a shared database submits a SELECT (or update-variant) statement whose WHERE clause embeds a side-effecting expression, causing the engine to leak record fields from a table they lack SELECT permission on. With --allow-scripting enabled they exfiltrate rows directly; otherwise they use THROW to surface data in error messages or measure query timing to reconstruct it row by row. No public POC is currently identified, but the advisory describes each primitive in enough detail to reproduce.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 20, 2026

Broken authorization in SurrealDB before 3.1.0 lets any authenticated principal - including low-privilege Record and Scope users - read the full contents of every table in their current database, bypassing PERMISSIONS FOR SELECT WHERE controls. The flaw stems from the engine evaluating user-supplied WHERE (and SET/MERGE/CONTENT/PATCH) expressions against complete record data before running the table-level SELECT permission check, so side-effecting expressions exfiltrate data the caller should never see. No public exploit identified at time of analysis, and the issue is not in CISA KEV, but the GHSA advisory documents multiple practical exfiltration primitives (scripting functions, THROW, and timing side channels).

RemediationAI

Upgrade to SurrealDB 3.1.0 or later, which reorders enforcement so check_permissions_table runs before any user-supplied expression is evaluated (fix commit 500f4060349580b9cbb9c07b8112a487551c4616; advisory GHSA-98fx-66cf-fc7c). Vendor-released patch: 3.1.0. If you cannot upgrade immediately, remove the -A / --allow-scripting flag to block the most direct exfiltration path - but note this is only partial mitigation because THROW-based and timing side-channel extraction still work. Additionally, restrict which untrusted principals can run arbitrary SELECT statements with attacker-controlled WHERE clauses, and treat namespace/database isolation (not table-level PERMISSIONS) as the primary trust boundary between untrusted tenants, accepting the operational overhead of provisioning separate databases per tenant.

Affected VersionsENISA

surrealdb 0 <3.1.0

Affected Packages

cargo surrealdb fix: 3.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in cargo

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

SurrealDB is an emerging multi-model database that exposes SurrealQL, a SQL-like query language supporting row-level access control via PERMISSIONS FOR SELECT WHERE clauses attached to tables. The vulnerability is a CWE-863 (Incorrect Authorization) ordering defect: the query executor binds and evaluates the caller's WHERE predicate against the full, unredacted record before the permission gate (check_permissions_table) decides whether the caller may see that record. Because SurrealQL expressions can produce observable side effects, the predicate itself becomes an oracle over data the permission layer was supposed to hide. The same premature-evaluation path affects the mutation clauses (SET, MERGE, CONTENT, PATCH) of UPDATE, UPSERT update-variant, INSERT ON DUPLICATE KEY UPDATE, and RELATE update-variant statements. The fix centralizes the check via a new check_pre_update helper that enforces check_permissions_table before any user expression runs.

Know when Surrealdb gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vulncheck) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network-reachable query interface (AV:N/AC:L) requiring any authenticated principal (PR:L) yields full table disclosure (C:H) with no integrity or availability impact and no scope change.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Jul 20, 2026 - 15:33 EUVD
CVE Published
Jul 20, 2026 - 12:19 cve.org
HIGH 7.1

DescriptionCVE.org

SurrealDB before 3.1.0 evaluates user-supplied WHERE clauses in SELECT statements (and SET/MERGE/CONTENT/PATCH clauses in UPDATE, UPSERT, INSERT ON DUPLICATE KEY UPDATE, and RELATE update-variant statements) against full record data before enforcing PERMISSIONS FOR SELECT WHERE restrictions. An authenticated user - including Record and Scope users - can exploit this ordering flaw to read the full contents of any table in the database they are authenticated against, bypassing table-level permission checks. Exfiltration is most direct when scripting functions are enabled (--allow-scripting), but is also possible via SurrealQL's THROW statement and timing-based side channels without scripting. The vulnerability is confined to the attacker's current database and does not cross namespace or database isolation boundaries.

Executive ViewAI

Why It Matters

SurrealDB versions before 3.1.0 contain a broken authorization flaw that allows any database user to read the complete contents of all tables, entirely bypassing row-level access controls. Organizations relying on SurrealDB for multi-tenant or role-based data isolation face uncontrolled exposure of sensitive customer data and confidential business information across their entire database.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: enforce network segmentation to limit database access to trusted applications only, disable or deprivilege low-privilege user accounts, deploy database-layer monitoring to detect anomalous read query volumes, and consider temporary data segregation for the most sensitive tables until a patched version is available.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
emerging open-source multi-model database, limited production enterprise footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2025-71392 CRITICAL
9.4 Jul 18

Privilege escalation via second-order SurrealQL injection in SurrealDB before 2.0.5, 2.1.5, and 2.2.2 lets an authentica

CVE-2026-63756 CRITICAL
9.2 Jul 20

Privilege escalation in SurrealDB before v3.1.0 lets unauthenticated attackers hijack the privileges of concurrently-act

CVE-2026-63760 HIGH
8.7 Jul 20

Denial of service in SurrealDB before 3.1.0 lets an unauthenticated remote attacker crash the database with a single Web

CVE-2026-63747 HIGH
8.7 Jul 20

Denial of service in SurrealDB before 3.1.0 lets an unauthenticated remote attacker crash the entire database process wi

CVE-2026-63757 HIGH
8.7 Jul 20

Session hijacking in SurrealDB before 3.1.0 lets unauthenticated attackers enumerate attached session UUIDs through the

CVE-2026-109343 HIGH
8.6 Oct 12

SurrealDB versions before 3.3.0 fail to validate a caller's authorization level when the SurrealQL USE statement switche

CVE-2026-109334 HIGH
8.6 Oct 12

Cross-tenant data access in SurrealDB before 3.3.0 allows an authenticated namespace- or database-level SYSTEM user to b

CVE-2026-63735 HIGH POC
8.6 Jul 20

Cross-tenant authorization bypass in SurrealDB before 3.2.0 lets any authenticated user reach custom API endpoints belon

CVE-2026-63739 HIGH
8.3 Jul 20

Arbitrary file read in SurrealDB before 3.1.5 lets an authenticated database user holding the EDITOR or OWNER role discl

CVE-2026-63763 HIGH
7.5 Jul 20

Confused-deputy privilege escalation in SurrealDB before 2.5.0 and before 3.0.0-beta.3 lets a low-privileged user (e.g.

CVE-2026-63737 HIGH
7.1 Jul 20

Denial of service in SurrealDB before 3.1.5 lets an authenticated user with query-execution privileges crash the entire

CVE-2026-109338 HIGH
7.1 Oct 12

Denial of service in SurrealDB versions before 3.3.0 lets a query-capable authenticated user with embedded JavaScript sc

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy