Description
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.
Published: 2026-07-20
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

SurrealDB versions prior to 3.1.0 evaluate user‑supplied WHERE clauses before enforcing SELECT WHERE permissions, allowing an authenticated user to access full table contents regardless of table‑level restrictions. This flaw can be triggered through SELECT statements or various update operations that include WHERE clauses, and may also be leveraged via scripting functions, SurrealQL THROW statements, or side‑channel timing attacks. The resulting data exfiltration is limited to the attacker’s current database and cannot cross namespace or database boundaries.

Affected Systems

The vulnerability affects SurrealDB deployments running any version before 3.1.0. Users with authentication—whether record or scope users—can exploit the flaw, and the issue is present across all database tables in the affected installations.

Risk and Exploitability

The CVSS score of 7.1 indicates moderate to high severity. The EPSS score indicates an exploitation probability of less than 1%, and the vulnerability is not listed in CISA’s KEV catalog. Because the attack requires authentication and relies on ordering of permission checks, an attacker must already possess valid database credentials, but the scenario is realistic for compromised or privileged accounts. Exploitation can be most efficient when scripting is allowed, yet alternative methods reduce reliance on that feature.

Generated by OpenCVE AI on July 30, 2026 at 19:34 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade SurrealDB to version 3.1.0 or later to remove the ordering flaw.
  • If an upgrade cannot be performed immediately, disable scripting (omit the --allow-scripting flag) and limit the use of SurrealQL THROW statements to trusted users.
  • Apply the principle of least privilege by revoking unnecessary SELECT privileges and restricting authenticated user roles to only the tables they need to access.

Generated by OpenCVE AI on July 30, 2026 at 19:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 28 Jul 2026 01:30:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:surrealdb:surrealdb:*:*:*:*:*:*:*:*

Thu, 23 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Surrealdb
Surrealdb surrealdb
Vendors & Products Surrealdb
Surrealdb surrealdb

Mon, 20 Jul 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 20 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Description 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.
Title SurrealDB before 3.1.0 Permission Bypass via WHERE Clause
Weaknesses CWE-863
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 7.1, 'vector': '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'}


Subscriptions

Surrealdb Surrealdb
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-28T01:05:47.203Z

Reserved: 2026-07-18T12:30:08.354Z

Link: CVE-2026-63755

cve-icon Vulnrichment

Updated: 2026-07-20T13:47:32.812Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T19:45:06Z

Weaknesses