Skip to main content

SurrealDB CVE-2026-109341

| EUVDEUVD-2026-97643 HIGH
Information Exposure (CWE-200)
2026-10-12 VulnCheck GHSA-xwrw-vq8w-mgj7
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 with table-level write permission
  2. Delivery
    Craft JSON Patch copy/move or test request
  3. Exploit
    Resolve pointer against unreduced record to reach restricted field
  4. Execution
    Read exfiltrated field value or observe test mismatch oracle
  5. Impact
    Harvest SELECT-restricted data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

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

Exploitation Conditions

Exploitation requires an authenticated caller who already holds table-level WRITE permission on the target table but is restricted from SELECTing specific fields (PR:L) - this is the exact precondition named in the advisory. The flaw is triggered specifically through SurrealDB's JSON Patch support: 'copy' or 'move' operations whose pointers resolve against the unreduced (pre-permission-filtered) record, or 'test' operations whose mismatch errors act as a disclosure oracle. It is therefore only meaningful in deployments that rely on field-level SELECT restrictions as a security boundary while granting record-write access (e.g. multi-tenant or least-privilege role setups) on SurrealDB versions before 3.3.0. It does NOT apply to pre-authentication attackers or to deployments without field-level permission separation, and no user interaction is required (UI:N).

Impact

This is a credible but moderate-priority vulnerability rather than an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N, 7.1 High) is internally consistent with the description: a network-reachable, low-complexity attack that requires PR:L - i.e. an already-authenticated caller holding table-level write permission - to achieve high confidentiality impact by reading SELECT-restricted fields. The primary signal is confidentiality disclosure; integrity impact is low (VI:L) because PATCH copy/move only moves already-existing hidden data into a readable field, and availability is unaffected (VA:N). Crucially, there is NO CISA KEV listing, NO public POC in the provided data, and NO EPSS score supplied, so there is no evidence of active or probable near-term exploitation - the urgency rests on a disclosed advisory, not observed attacks. SSVC-style framing: exploitation is 'none observed,' technical impact is 'partial' (data read, not full control), and automatability is limited because the attacker must first possess valid write credentials on the target table. The key limiting factor that tempers the High score is the PR:L precondition - this is not a pre-auth bypass but a privilege-boundary violation within an already-trusted session, making it most relevant in multi-tenant deployments or where write-but-not-read field permissions are a deliberate security control.

Exploit ScenarioDerived

An attacker who already holds table-level write permission in a multi-tenant SurrealDB instance crafts a JSON Patch request using a 'copy' or 'move' operation whose source pointer targets a field they are forbidden to SELECT (e.g. a password hash or PII column), copying it into a destination field they can read back. Alternatively they submit PATCH 'test' operations and observe success/mismatch error responses to brute-force hidden values as a disclosure oracle. No public exploit code is identified at time of analysis, but exploitation is low-complexity (AC:L) and requires only an authenticated low-privilege account.

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

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

Alert me

AnalysisAIv1 – Oct 12, 2026

SurrealDB deployments before 3.3.0 allow an authenticated caller who holds table-level WRITE permission but is denied SELECT on specific fields to read those hidden field values anyway, by issuing JSON Patch 'copy' or 'move' operations whose pointers are resolved against the unreduced record before field-level permission filtering is applied. The same weakness lets an attacker use PATCH 'test' operation mismatch errors as a boolean disclosure oracle to confirm the contents of SELECT-restricted fields. The issue is rated CVSS 7.1 (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N, and a 3.1-equivalent assessment of AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N), making it a credible but moderate-priority confidentiality flaw rather than an emergency; no public exploit identified at time of analysis, and it does not affect unauthenticated attackers or deployments that do not rely on field-level SELECT restrictions as a security boundary.

RemediationAI

Upgrade to SurrealDB 3.3.0 or later, which is the vendor-released fix for this field-permission bypass; the vendor advisory GHSA-h2c3-549c-gjpr and the VulnCheck advisory link the affected and fixed versions and should be reviewed before scheduling the change. Where upgrading immediately is not possible, the most effective compensating control is to stop treating field-level SELECT restrictions as a security boundary: remove or tighten table-level WRITE/UPDATE permission for any role that cannot already read the full record, or move sensitive fields into a separate table or record that the write-capable role has no mutation rights on - the trade-off is additional schema complexity and query joins, and legitimate update workflows must be re-tested. A narrower mitigation is to reject or strip client-supplied JSON Patch payloads containing 'copy', 'move', or 'test' operations at the API gateway or application layer before they reach SurrealDB (force explicit field assignments instead), at the cost of losing patch semantics and possibly breaking clients; denying UPDATE on records whose hidden fields are never legitimately modified is a simpler variant with the same functional downside. Finally, because 'test' mismatches leak one bit per request, alert on bursts of failed PATCH 'test' operations or repeated UPDATE-with-patch traffic from a single role as a detection backstop, and audit logs for any 'copy'/'move' destinations that redirect SELECT-restricted fields into readable ones. Authentication requirements for the attacker are confirmed as authenticated with low privileges (PR:L) by the CVSS vector; no vendor-released patch version other than 3.3.0 is indicated in the available data.

Affected VersionsENISA

surrealdb 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 is a multi-model database that exposes document-style records with a per-table and per-field permission system (DEFINE TABLE ... PERMISSIONS plus DEFINE FIELD ... PERMISSIONS), where read and write rights can be granted independently. The vulnerable feature is SurrealDB's support for JSON Patch-style record mutation: 'copy', 'move', and 'test' operations take JSON Pointers that are evaluated server-side against the stored record. The implementation resolves those pointers against the unreduced record - the full document as persisted - instead of the permission-filtered projection that a SELECT would return. Consequently a caller who is legitimately authorized to UPDATE a record can point a 'copy' or 'move' at a field they cannot SELECT and deposit its value into a destination field they can read, or infer the value bit-by-bit from whether a 'test' operation matches. This is a classic CWE-200 information exposure caused by inconsistent enforcement of an authorization boundary across two code paths (query/read versus patch/mutation) rather than a memory-safety defect. The tracking CPE cpe:2.3:a:surrealdb:surrealdb:*:*:*:*:*:*:*:* covers all releases prior to the fixed version, and the reported tags (Information Disclosure, Oracle, SurrealDB) match the dual copy/move exfiltration and test-oracle exploitation techniques described in the VulnCheck advisory.

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:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Network-reachable PATCH API with low complexity; PR:L because a valid table-level write account is required; C:H for restricted-field disclosure, I:L for the copy/move write side-effect, A:N, scope unchanged.

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

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 18:03 EUVD
CVE Published
Oct 12, 2026 - 16:05 cve.org
HIGH 7.1

DescriptionCVE.org

SurrealDB before 3.3.0 contains an authorization bypass vulnerability that allows callers with table-level write permission to read SELECT-restricted fields by resolving JSON Patch pointers against the unreduced record. Attackers can use PATCH copy or move operations to copy hidden fields into readable destinations, or abuse test mismatch errors as a disclosure oracle.

Technical POC Analysis

CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), with CWE-863 (Incorrect Authorization) also assigned.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

SurrealDB deployments running versions before 3.3.0 contain a field-level access control flaw that allows an authenticated user with table-level WRITE permission to read data they are explicitly denied SELECT access to - undermining the database's field-level permission model that many teams rely on as a data confidentiality boundary. The exposure is limited to authenticated accounts already granted write access and to environments that use per-field SELECT restrictions to protect sensitive columns; unauthenticated attackers cannot leverage it. Leadership should care because affected systems may silently leak regulated or sensitive record fields to lower-privileged internal users or service accounts without any anomalous access pattern being obvious.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis; the advisory context identifies SurrealDB 3.3.0 as the unaffected target version. Interim mitigations: revoke or reduce table-level WRITE permissions for accounts that are denied SELECT on any field in the same table; separate SELECT-restricted data into dedicated tables that no low-trust account can write to; restrict JSON Patch PATCH operations (copy, move, test) via application-layer validation or API gateway rules; and log and alert on those operations against tables containing restricted fields to detect boolean-oracle probing.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Low
emerging multi-model database, limited production enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.3%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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