Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with table-level write permission
-
DeliveryCraft JSON Patch copy/move or test request
-
ExploitResolve pointer against unreduced record to reach restricted field
-
ExecutionRead exfiltrated field value or observe test mismatch oracle
-
ImpactHarvest 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-97643
GHSA-xwrw-vq8w-mgj7
NVD
CVE.org
EPSS
Exploit-DB