Description
SurrealDB before 3.3.0 contains an authorization bypass in HTTP session construction where check_auth() verifies credentials against Surreal-Auth-NS and Surreal-Auth-DB headers but constructs sessions using Surreal-NS and Surreal-DB headers without validating access permissions. Attackers can authenticate as a user from one tenant while selecting another tenant's namespace and database to read, create, and modify records across tenant boundaries.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| surrealdb | surrealdb | < 3.3.0 | 3.3.0 |
References
- GitHub Security Advisory (GHSA-vx2p-7hhm-wv62) vendor-advisory
- https://github.com/surrealdb/surrealdb/commit/5000e233b4a8b96689c82715c172061dcf711d31 patch
- https://github.com/surrealdb/surrealdb/blob/v3.2.4/surrealdb/server/src/ntw/auth.rs technical-description
- surrealdb v3.3.0 Release Notes release-notes
- https://github.com/surrealdb/surrealdb product
- VulnCheck Advisory: SurrealDB before 3.3.0 Cross-Tenant Access via Headers third-party-advisory