Skip to main content

SurrealDB CVE-2026-63753

| EUVDEUVD-2026-45924 MEDIUM
Insufficient Session Expiration (CWE-613)
2026-07-20 disclosure@vulncheck.com GHSA-9567-jfw6-h5pc
5.3
CVSS 4.0 · Vendor: vulncheck
Share

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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
4.3 MEDIUM

Network-accessible via WebSocket RPC; authenticated session required (PR:L) to register LIVE queries; confidentiality-only impact limited to already-permitted data, no integrity or availability effect.

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
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

3
Patch available
Jul 20, 2026 - 15:33 EUVD
Source Code Evidence Fetched
Jul 20, 2026 - 12:48 vuln.today
Analysis Generated
Jul 20, 2026 - 12:48 vuln.today

DescriptionCVE.org

SurrealDB before 3.1.0 fails to refresh authentication state in LIVE SELECT subscriptions when session state changes. Attackers can continue receiving real-time notifications under revoked or expired session credentials until the connection closes.

AnalysisAI

LIVE SELECT subscriptions in SurrealDB before 3.1.0 persist real-time change notifications under revoked, expired, or superseded session credentials, violating session boundary enforcement. Authenticated users who register a LIVE SELECT query retain delivery of change notifications after their session is invalidated, expires via TTL, or is replaced by a different identity authenticating on the same WebSocket connection. No public exploit has been identified and no active exploitation is confirmed; vendor-released patch is available in SurrealDB 3.1.0.

Technical ContextAI

SurrealDB is a multi-model database written in Rust, exposing a WebSocket-based RPC protocol for clients. The LIVE SELECT feature allows clients to subscribe to real-time change notifications on tables or rows. At subscription registration, the server snapshots the session's full authentication context - the variables $auth, $token, $session, and $access - and uses this frozen snapshot to evaluate table- and row-level PERMISSIONS clauses for every subsequent notification dispatched on that subscription. The root cause is CWE-613 (Insufficient Session Expiration): the captured auth snapshot is never refreshed or invalidated when the originating session's state changes, even though the WebSocket transport layer and its subscriptions remain alive. The fix, delivered across commits 6cc48412c975d51b47617708ec44abc11ca5a89a and cbec0a73dc9575994d2b9c1aec26af539dc99878, introduces cleanup_lqs(session_id) calls upon session invalidation and principal change, and adds a TTL expiry guard in the notification dispatcher that skips delivery once the originating session's exp timestamp has passed.

RemediationAI

Upgrade to SurrealDB 3.1.0 or later, the confirmed vendor-released fix documented in GHSA-4m82-p8cx-f94j (https://github.com/surrealdb/surrealdb/security/advisories/GHSA-4m82-p8cx-f94j). The underlying changes are delivered in commits 6cc48412c975d51b47617708ec44abc11ca5a89a and cbec0a73dc9575994d2b9c1aec26af539dc99878. For deployments that cannot upgrade immediately, clients should explicitly call reset() to tear down all LIVE queries associated with the session, or individually kill each outstanding live query ID by its query ID, before performing any signout, signin, signup, or authenticate operation on an existing connection. This client-side workaround carries the trade-off of requiring application-layer discipline and does not close the TTL-expiry leg - when a session's time-to-live elapses while a LIVE SELECT remains active, there is no client-side mitigation; only upgrading to 3.1.0 resolves that case.

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-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-2025-71397 HIGH
7.1 Jul 18

Denial of service in SurrealDB before 2.0.5, 2.1.x before 2.1.5, and 2.2.x before 2.2.2 lets an authenticated user with

CVE-2026-63746 HIGH
7.1 Jul 20

Information disclosure in SurrealDB before 3.1.0 allows authenticated record or scope users to bypass table-level SELECT

CVE-2025-71391 HIGH
7.1 Jul 18

Denial of service in SurrealDB before 2.2.2 allows any authenticated user to crash the database by submitting a crafted

Share

CVE-2026-63753 vulnerability details – vuln.today

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