GitHub Advisoryadvisory · crates.io

GHSA-wjjj-24cx-f28g SurrealDB has unauthenticated remote DoS via malformed RPC `use` call

HIGH Published 2026-07-01 Modified 2026-07-01 Official page ↗
Ecosystem
crates.io
Packages
surrealdb
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-248, CWE-754
Reviewed
2026-07-01

Affected packages

• crates.io surrealdb: < 3.1.0 → fixed in 3.1.0

Description

A single unauthenticated WebSocket message to `/rpc` crashed the SurrealDB server. Sending `use { db: "x" }` without first selecting a namespace hit `.expect("namespace should be set")` in the `use` handler; because `surrealdb-core` is built with `panic = 'abort'`, the panic terminated the process. `use` is callable before `signin`, and the per-method capability check passes by default for guest callers — so no credentials, token, or `--allow-guests` flag are required. Impact An unauthenticated remote attacker who could reach the `/rpc` endpoint could crash the SurrealDB server with a single WebSocket message. No credentials, token, session knowledge, or capability are required. Patches A patch has been introduced that returns a typed `invalid_params` response when `db` is set on a session with no `ns`, replacing the panic. • Versions 3.1.0 and later are not affected by this issue. Workarounds Affected users who are unable to update should restrict network access to the `/rpc` endpoint to trusted clients, and run SurrealDB under a process supervisor that restarts on crash.

Related

Weakness · CWE (2)

  • CWE-248 Uncaught Exception weakness
  • CWE-754 Improper Check for Unusual or Exceptional Conditions weakness

References