Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach HTTP /rpc endpoint over network
-
DeliveryCall unauthenticated sessions method
-
ExploitEnumerate attached session UUIDs
-
ExecutionReplay UUID in /rpc session field
-
PersistImpersonate authenticated session
-
ImpactRead/write/delete data and escalate to root
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires (1) the SurrealDB HTTP /rpc endpoint to be network-reachable to the attacker, and (2) at least one client to have registered an authenticated session via {"method":"attach"} on that HTTP transport - in practice the official Rust SDK's Http/Https engine, which auto-attaches once per Surreal handle. The attacker needs no credentials (PR:N): they enumerate attached UUIDs via the unauthenticated sessions method and then supply the target UUID in the /rpc 'session' field, which the pre-3.1.0 handler accepts without ownership verification. Limiting factors: an attached session that has not yet authenticated is Level::No and confers no privilege; WebSocket /rpc (per-connection scope, attach refused), REST endpoints (/sql, /signin, /key, /export), embedded/MCP usage, and POST /rpc callers that never attach are all NOT exposed. The UI:P metric reflects this dependency on a legitimate client's attach behavior rather than any per-request victim action. |
| Impact | The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P) with VC:H/VI:H/VA:H and a base score of 8.7 indicates a network-reachable, low-complexity, unauthenticated attack with high impact to confidentiality, integrity and availability but no scope change to other systems (SC/SI/SA:N). The single mitigating signal in the vector is UI:P (passive user interaction): exploitation is only possible when a legitimate client has actually attached an authenticated session over HTTP /rpc, so the attack surface depends on victim client behavior rather than being universally exploitable against every default deployment. No CISA KEV listing and no EPSS score are present in the provided data, and no POC is referenced, so this reads as a high-severity, high-confidence-of-mechanism issue without evidence of active or widespread exploitation yet. Net: a genuine priority for anyone running SurrealDB < 3.1.0 with Rust-SDK HTTP clients, but the UI:P precondition means it is not a spray-and-pray internet-wide RCE-equivalent; targeted attacks against known SurrealDB HTTP endpoints are the realistic threat. |
| Exploit ScenarioDerived | An application uses the official Rust SDK's Http engine, which auto-attaches an authenticated (up to root) session to a SurrealDB < 3.1.0 instance reachable on the network. An unauthenticated attacker who can reach /rpc calls the 'sessions' method to list attached UUIDs, then issues an /rpc request carrying a victim's UUID in the 'session' field and is treated as that authenticated session, reading and deleting data and escalating privilege. No public POC is referenced, but the GHSA advisory describes each step precisely. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 20, 2026
Session hijacking in SurrealDB before 3.1.0 lets unauthenticated attackers enumerate attached session UUIDs through the HTTP /rpc 'sessions' method and then impersonate any authenticated session by supplying an arbitrary 'session' field that the /rpc handler never ownership-checks. Because impersonation inherits the victim session's authorization, an anonymous caller can read, write, and delete data and escalate to that session's level, up to root. There is no public exploit identified at time of analysis, but the vendor GHSA advisory documents the mechanism in full detail, making reproduction straightforward.
RemediationAI
Vendor-released patch: upgrade to SurrealDB 3.1.0 or later, in which HTTP sessions() now returns method_not_allowed, the /rpc handler gates client-supplied session IDs against the caller's request-level auth principal (actor id + level) and returns session_not_found on mismatch, and attached HTTP sessions are capped via the SURREAL_HTTP_MAX_ATTACHED_SESSIONS environment variable (patch commit https://github.com/surrealdb/surrealdb/commit/fd800fc7c55afcdc97057d18cf7cb7f83557e702). Where immediate upgrade is impossible, the vendor states no configuration-level mitigation fully addresses the flaw, but you can reduce exposure by avoiding SDKs and client flows that call attach against HTTP /rpc - notably the Rust SDK's Http/Https engine - and instead using the WebSocket transport (per-connection scope, attach refused) or REST endpoints (/sql, /signin, /key, /export) that never populate the attached-session map; the trade-off is a client transport change. Additionally restrict /rpc to trusted clients at the network layer (firewall/allowlist or reverse-proxy auth), accepting that this only limits reachability and does not close the underlying missing-authentication gap. Advisory: https://github.com/surrealdb/surrealdb/security/advisories/GHSA-5qfp-32cf-69jh.
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 modern multi-model (document/graph/relational) database that exposes an RPC surface over both HTTP and WebSocket. The flaw is a CWE-306 (Missing Authentication for Critical Function) issue in the HTTP transport: the /rpc 'sessions' method returned every attached session UUID with no authentication, and the /rpc handler accepted a client-supplied 'session' field without verifying that the caller owned it. 'Attached' sessions are those registered via {"method":"attach"} - the only writer to the HTTP session map - which is how the official Rust SDK's Http/Https engine behaves (it auto-attaches once per Surreal handle). Ordinary stateless /rpc requests use ephemeral per-request sessions that are filtered from sessions() and destroyed at end of request, so they are never enumerable. The combination of an unauthenticated enumeration primitive plus an unverified session-selection parameter turns knowledge of a UUID into full impersonation.
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:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable and low-complexity with no attacker auth (PR:N), but exploitation depends on a legitimate client having attached an authenticated session, mapped from CVSS 4.0 UI:P to UI:R; full C/I/A impact within the DB with no scope change.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
SurrealDB versions before 3.1.0 contain a session hijacking vulnerability where the HTTP /rpc sessions method returns attached session UUIDs without authentication and accepts arbitrary session fields with no ownership verification. Unauthenticated attackers can enumerate session UUIDs and impersonate authenticated sessions to read, write, delete data and escalate privileges.
Executive ViewAI
SurrealDB versions before 3.1.0 contain a session hijacking vulnerability that allows attackers to enumerate and impersonate any authenticated user session, gaining complete read, write, and delete access to database contents and privilege escalation without providing credentials. Any organization running affected versions faces immediate risk of full data compromise and administrative takeover through database hijacking.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict /rpc endpoint access via network firewall to trusted systems only; disable the 'sessions' method if operationally feasible; monitor for session enumeration patterns (repeated /rpc 'sessions' requests from single source); enforce mandatory session invalidation and re-authentication every 24 hours; enable comprehensive audit logging on all database operations; isolate affected systems from untrusted network segments until patched.
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
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
Authenticated SurrealDB record users can read field values that field-level SELECT permissions are meant to conceal on S
EUVD-2026-45928
GHSA-32pg-rjqh-fhfp
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB