Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as record user
-
DeliveryRegister LIVE SELECT with predicate over $before/$after
-
ExploitCraft guess predicate for hidden field
-
ExecutionObserve notification delivery on CREATE/UPDATE/DELETE
-
ImpactInfer or narrow restricted field value
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication Timing-safe comparisons
|
| Exploitation Conditions | Requires an authenticated SurrealDB record user (PR:L) with the ability to register LIVE SELECT queries; it does not require admin or root credentials. Exploitation specifically targets tables protected by field-level SELECT permissions - the attacker abuses WHERE predicates referencing $before or $after and uses notification delivery on CREATE/UPDATE/DELETE as an inference oracle. Limiting factors: the attacker must already have a valid record-user session, the target data must be governed by field-level permissions (otherwise there is nothing hidden to infer), disclosure is incremental rather than bulk (requiring repeated crafted predicates and observed record changes), and only values of restricted fields are exposed - no write, deletion, or service-availability impact. Patched in SurrealDB 3.3.0. |
| Impact | This is a genuine but modest-severity information-disclosure issue, not a top-tier priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N) scores 5.3 and the signals are internally consistent: network-reachable but requiring an authenticated record user (PR:L), with only low confidentiality impact (VC:L) and no integrity or availability impact. CWE-203 (observable discrepancy / inference oracle) matches the described mechanism - attackers infer hidden field values by observing whether LIVE SELECT notifications fire, rather than directly reading data. No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of active exploitation; this reads as a logic/isolation flaw disclosed responsibly via a GHSA advisory and VulnCheck, not an actively weaponized bug. The main caveat is that exploitation is an incremental inference oracle requiring an already-authenticated principal and repeated observation, which limits real-world urgency. Treat as a scheduled-patch item (upgrade to 3.3.0+) rather than an emergency, prioritizing instances where untrusted record users share tables containing field-level-restricted sensitive data. |
| Exploit ScenarioDerived | A low-privileged authenticated record user who is denied field-level SELECT access to a sensitive column (e.g., another user's salary or email) registers LIVE SELECT queries whose WHERE predicates reference $before or $after and test guesses about the hidden value. By watching whether a notification is delivered when records are created, updated, or deleted, the attacker confirms or narrows the restricted value. No public exploit code was identified at time of analysis, but the technique requires only standard query access and the network attack vector (AV:N) makes it reachable by any legitimate record user. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Field-level SELECT permission bypass in SurrealDB versions before 3.3.0 allows an authenticated record-level user to infer values of fields they are not permitted to read by registering LIVE SELECT queries whose WHERE clauses reference $before or $after record state and observing whether CREATE, UPDATE, or DELETE notifications are delivered. Because the notification stream acts as a boolean oracle, an attacker can iteratively narrow restricted field values with repeated crafted predicates; the impact is limited to confidentiality of permission-protected fields, with no write, delete, or availability effect, and no public exploit identified at time of analysis. The issue is confirmed fixed in SurrealDB 3.3.0.
RemediationAI
Vendor-released patch: upgrade SurrealDB to 3.3.0 or later, which closes the LIVE SELECT WHERE predicate inference path; verify the installed version and redeploy any nodes running earlier releases, then confirm the fix using the GitHub security advisory GHSA-jm88-9wvx-6h4q (https://github.com/surrealdb/surrealdb/security/advisories/GHSA-jm88-9wvx-6h4q) and the VulnCheck advisory (https://www.vulncheck.com/advisories/surrealdb-before-3.3.0-field-permission-bypass-via-live-select-where-clause). If an immediate upgrade is not possible, the most direct compensating control is to revoke the ability of record-level users to register LIVE SELECT queries on tables that rely on field-level SELECT permissions, for example by tightening permissions or disabling realtime subscriptions for those users; the trade-off is loss of legitimate realtime notification functionality for those accounts. An alternative is to remove sensitive fields from tables exposed to record users and serve them only through separate tables or query views that enforce redaction outside the LIVE SELECT evaluation path, accepting the schema-migration effort and any application changes required. Monitor for repeated or systematic LIVE SELECT registration and notification polling from the same record-user session, since the attack requires many crafted predicates, and treat such patterns as a signal to investigate.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
SurrealDB is a multi-model database whose access model supports record-level users and field-level permissions, and whose LIVE SELECT feature pushes realtime notifications to a client session when matching records are created, updated, or deleted. CVE-2026-109337 is rooted in CWE-203 (Observable Discrepancy): the WHERE predicate of a LIVE SELECT can reference the pseudo-variables $before and $after, which expose pre- and post-change record state, and the server evaluates those predicates before applying field-level SELECT redaction. If evaluation yields true, the notification is delivered; if false, it is suppressed. The presence or absence of a notification therefore reveals one bit about a field the user is not permitted to read, so an authenticated record user can register many predicates and use delivery outcomes as an inference oracle to reconstruct restricted values incrementally. The vendor report is tracked under GHSA-jm88-9wvx-6h4q and the VulnCheck advisory for the field-permission bypass via LIVE SELECT WHERE clause; the CPE entry cpe:2.3:a:surrealdb:surrealdb:*:*:*:*:*:*:*:* reflects that all releases before 3.3.0 are affected. The supplied CVSS 4.0 vector rates 5.3 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N), and the independent assessment concurs with a CVSS 3.1 equivalent of AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, confirming a network-reachable, low-privileged, authenticated information-disclosure weakness rather than a full authentication bypass, remote code execution, or integrity/availability issue.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Authenticated record user required (PR:L), network-reachable (AV:N), straightforward repeated predicate queries (AC:L), and only partial confidentiality loss via inference (C:L) with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
SurrealDB before 3.3.0 contains an authorization bypass vulnerability that allows record users to infer field values hidden by field-level SELECT permissions using LIVE SELECT WHERE predicates over $before or $after. Attackers can craft repeated predicates and observe whether notifications are delivered on CREATE, UPDATE, or DELETE to confirm or narrow restricted field values.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Privilege escalation via second-order SurrealQL injection in SurrealDB before 2.0.5, 2.1.5, and 2.2.2 lets an authentica
Privilege escalation in SurrealDB before v3.1.0 lets unauthenticated attackers hijack the privileges of concurrently-act
Denial of service in SurrealDB before 3.1.0 lets an unauthenticated remote attacker crash the database with a single Web
Denial of service in SurrealDB before 3.1.0 lets an unauthenticated remote attacker crash the entire database process wi
Session hijacking in SurrealDB before 3.1.0 lets unauthenticated attackers enumerate attached session UUIDs through the
SurrealDB versions before 3.3.0 fail to validate a caller's authorization level when the SurrealQL USE statement switche
Cross-tenant data access in SurrealDB before 3.3.0 allows an authenticated namespace- or database-level SYSTEM user to b
Cross-tenant authorization bypass in SurrealDB before 3.2.0 lets any authenticated user reach custom API endpoints belon
Arbitrary file read in SurrealDB before 3.1.5 lets an authenticated database user holding the EDITOR or OWNER role discl
Confused-deputy privilege escalation in SurrealDB before 2.5.0 and before 3.0.0-beta.3 lets a low-privileged user (e.g.
Denial of service in SurrealDB before 3.1.5 lets an authenticated user with query-execution privileges crash the entire
Denial of service in SurrealDB versions before 3.3.0 lets a query-capable authenticated user with embedded JavaScript sc
EUVD-2026-97639
GHSA-7c4p-52c9-9vq7
NVD
CVE.org
EPSS
Exploit-DB