Skip to main content

SurrealDB CVE-2026-121418

| EUVDEUVD-2026-115950 MEDIUM
Incorrect Authorization (CWE-863)
2026-11-03 VulnCheck GHSA-8x38-ppf2-349c
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as record user
  2. Delivery
    Identify indexed restricted fields
  3. Exploit
    Issue MATCHES / compound B-tree / KNN query
  4. Execution
    Observe returned record-ID membership
  5. Impact
    Infer restricted field values

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

Requires a valid authenticated SurrealDB record user holding table-level SELECT permission (PR:L), targeting a database whose schema defines a field-level restrictive (non-FULL) SELECT permission on a field AND an index covering that restricted field - specifically a FULLTEXT index (queried via @@/MATCHES), a compound B-tree index (queried with the restricted-field predicate plus a residual unrestricted-field predicate), or an HNSW vector index (queried via KNN <|k,ef|>). The vulnerable path is the streaming execution planner, which is the default for supported read-only statements in versions 3.1.0 up to (not including) 3.3.0. Limiting factors that reduce real-world exposure: the attacker must already have authenticated record-user access (no anonymous/remote-unauthenticated path); the deployment must actually use restrictive field-level SELECT permissions together with indexes on those restricted fields; a simple single-field restricted B-tree equality is NOT affected because that form retains the original predicate for re-evaluation (negative control); and disclosure is inferential (result-set membership/proximity oracle) rather than direct retrieval of the restricted value.

Impact

This is a medium-severity information-disclosure flaw, not a high-impact break: the CVE-record 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 GHSA's CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) agrees - network-reachable, low complexity, but requires an authenticated principal (PR:L) and yields only a low, confidentiality-only impact (VI/VA and I/A are N). The key risk-moderating signal is mechanism: the attacker is already a legitimate record user with table-level SELECT, and the flaw merely lets them use restricted-field indexes as a confirmation/proximity oracle (inferring which record IDs contain a guessed value, term, or nearest vector) rather than reading the restricted field directly - hence C:L rather than C:H. The vuln.today Decision label is 'this_month' (not act_now/emergency), consistent with a real-but-not-urgent issue. No CISA KEV listing and no EPSS score were supplied, so there is no evidence of active or probable widespread exploitation; however, a complete, recorded proof-of-concept is published in the GHSA advisory, so exploitability is demonstrated, not theoretical. Net: a genuine authorization-boundary defect worth patching on a normal cycle, but its blast radius is gated by authenticated access plus a specific schema configuration, so it is not a drop-everything internet-wide threat. One data conflict to verify: the advisory prose says 'No fixed version is available' and was confirmed on 3.3.0-nightly, while the structured package metadata and CVE title state the fix is in 3.3.0 - confirm the exact fixed build with the vendor.

Exploit ScenarioDerived

A multi-tenant application backs its data on SurrealDB and grants end users record-user access with field-level SELECT permissions that hide sensitive columns (e.g. password hints, secret tokens, or embeddings). An authenticated record user issues full-text MATCHES, compound B-tree, or HNSW KNN queries against those restricted fields and reads the returned record-ID membership to confirm guessed values or nearest vectors, even though direct SELECT still hides the field. A complete working PoC with recorded results is published in the GHSA advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

Incorrect authorization in SurrealDB 3.1.0 through 3.2.x lets an authenticated record user recover restricted field values by inference: the default streaming execution planner selects FULLTEXT, compound B-tree and HNSW indexes built on fields whose field-level SELECT permission is not FULL, then drops the index-covered predicate instead of re-evaluating it against the permission-reduced document. Affected are deployments that combine restrictive field-level SELECT permissions with indexes on those fields; direct SELECT output continues to hide the values, but result-set membership and ordering act as a confirmation or nearest-neighbour oracle, so the impact is low-severity, confidentiality-only disclosure (CVSS 4.0 5.3 / CVSS 3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, CWE-863/CWE-200). A public PoC reference exists (a reproduction script with recorded results in the GitHub advisory); it is not verified as working exploit code, and there is no CISA KEV listing.

RemediationAI

Upgrade to SurrealDB 3.3.0 or later: the advisory metadata lists the vulnerability range as >= 3.1.0, < 3.3.0 with fix in 3.3.0, although the GHSA text at the time of writing still stated that no fixed version was available and confirmed the flaw on a 3.3.0-nightly commit, so validate the fix on the exact build you deploy (track https://github.com/surrealdb/surrealdb/security/advisories/GHSA-x6mm-9295-rvph). Where an upgrade cannot be deployed immediately, the actionable compensating controls are schema-level: do not index fields whose field-level SELECT permission is restrictive - drop or avoid FULLTEXT, compound B-tree and HNSW indexes on any field defined with non-FULL SELECT permissions, accepting the query-performance cost of removing the index; alternatively raise the affected field's SELECT permission to FULL if record users are legitimately allowed to read it, accepting that the value then becomes directly readable; or tighten the table-level permissions (for example NONE or a WHERE filter) so untrusted record users cannot issue SELECT against tables containing restricted indexed fields, accepting reduced application functionality. Note that a simple single-field restricted B-tree equality is not exploitable because that form re-evaluates the predicate, so only compound B-tree, full-text MATCHES and KNN query shapes need to be considered when scoping workarounds.

Affected VersionsENISA

surrealdb 3.1.0 <3.3.0

Affected Packages

euvd surrealdb fix: 3.3.0

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 applies authorization at two layers: table-level PERMISSIONS and per-field PERMISSIONS FOR select, where a field may be defined as not readable by record users while still being indexed. The legacy query planner enforces this boundary explicitly: in surrealdb/core/src/idx/planner/tree.rs:402-414 it skips any index whose columns reference a field with a non-FULL SELECT permission whenever permissions are being enforced, preventing index-only fast paths from short-circuiting document-level field reduction. The streaming planner, which is the default for supported read-only statements from 3.1.0 onward, resolves restricted field prefixes for ordering and union decisions but does not apply that guard when choosing index sources (IndexAnalyzer at core/src/exec/index/analysis.rs:19-77 does not receive field permission definitions, and core/src/exec/planner/select/mod.rs:1546-1711 selects the scan without re-checking). The root cause is CWE-863 (incorrect authorization), with CWE-200 information exposure as the effect: for MATCHES/@@ full-text queries plan_fulltext_search_source removes the predicate before constructing FullTextScan, so results are never re-tested against the reduced document; for compound B-tree predicates plan_btree_scan_source strips the restricted-field condition while a residual unrestricted condition still passes; for KNN queries plan_knn_search_source returns record IDs straight from the vector index, exposing proximity ordering. A single restricted-field equality is a negative control because that form retains the predicate for re-evaluation. The advisory frames this as an incomplete application of the restricted-index boundary previously fixed in GHSA-c8jx-96c9-8xrp and GHSA-h4h3-3rfj-x6fq.

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 5.3 MEDIUM
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
vuln.today AI 4.3 MEDIUM

Authenticated record user over the network query interface (PR:L, AV:N, AC:L, no UI); only partial inferential confidentiality loss via an index oracle, so C:L and no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/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
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Nov 03, 2026 - 16:17 EUVD

DescriptionCVE.org

SurrealDB from 3.1.0 before 3.3.0 contains an incorrect authorization vulnerability that allows record users to infer restricted field values because the streaming planner uses indexes on fields with restrictive SELECT permissions. Attackers can issue full-text MATCHES, compound B-tree, or HNSW KNN queries against restricted fields to learn which records contain guessed values or nearest vectors.

Threat Intelligence Overview

Prevalence
Low
emerging open-source multi-model database, limited real-world production footprint
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
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-121417 HIGH
8.8 Nov 03

Use-after-free in SurrealDB Core before 3.3.0 can crash or corrupt memory in Rust applications that embed the database a

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-121419 HIGH
8.6 Nov 03

Cross-user MCP session takeover in SurrealDB 3.1.0 through 3.2.x allows an authenticated holder of even a lowest-role JW

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.

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