OSV 1.4.0 · github-reviewed · 修改于 2026-07-02 04:21
发布时间
2026-07-02 04:21
GitHub 审查时间
2026-07-02 04:21
NVD 发布时间
—
源文件
advisories/github-reviewed/2026/07/GHSA-wp87-mgvq-5j93/GHSA-wp87-mgvq-5j93.json
An anonymous caller could create new namespaces and databases on a running SurrealDB instance without holding DEFINE NAMESPACE or DEFINE DATABASE permission.
USE NS <name> and USE DB <name> automatically create the target when it does not exist. The three places USE is handled — the RPC use method, Datastore::process_use, and the SurrealQL executor — did not check whether the caller was allowed to create the resource. Under default capabilities any session reached this path, including an unauthenticated guest.
What an attacker can do:
DEFINE NAMESPACE / DEFINE DATABASE permission. An unauthenticated guest is enough under default capabilities.USE NS <dropped> DB anything.What it can't do:
auth_enabled=false.All three USE entry points now check whether the caller has DEFINE NAMESPACE / DEFINE DATABASE authority before creating a missing target. Sessions still update their context regardless of authorization, so SDKs that send use before signin continue to work — only the catalog creation step is gated. The parent-namespace side-effect path is closed by the same check.
Versions 3.1.0 and later are not affected.
--deny-arbitrary-query * for guest principals to remove the entry point.--auth and require all callers to signin before issuing .use