Read the docs
TI-2026-66984 Aliases GHSA-6wqw-vhfr-9999

SurrealDB: Authenticated subscribers can read records hidden by SELECT permissions via LIVE subscriptions

Priority LOW 38CWE-863Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Security bypass
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-863.

Summary

A record user could read records the table's SELECT permission expression should have hidden, when that expression referenced `$value`, `$before`, `$after`, or `$event`. Binding a chosen value to that name before registering a `LIVE SELECT` caused notifications to evaluate the permission against the attacker's input instead of the real document. ### Impact A record user binds a value to `$value`, `$before`, `$after`, or `$event` (e.g. `LET $value = [$auth.id]`) and registers `LIVE SELECT * FROM person`. The captured value shadows the real document at notification time, so a SELECT permission like `WHERE $auth.id.id() IN $value` passes for every record on the table — the subscriber receives notifications for records they should not see. Read-only impact, bounded to one table. Permission expressions that reference only field names, `$auth`, or `$session` are unaffected. ### Patches A patch has been introduced that re-orders the LIVE notification parameter binding so captured user variables are added first and the trusted document-context and session parameters are added last. - Versions 3.1.0 and later are not affected by this issue. ### Workarounds Affected users who are unable to update should avoid table-`PERMISSIONS` and LIVE `WHERE` expressions that read user-named variables (`$value`, `$before`, `$after`, `$event`) without also gating on a system-derived field such as the record id.

Why it matters now

Fix Fixed surrealdb (crates.io): 3.1.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—surrealdb (crates.io)before 3.1.03.1.0Patch availableGHSA-6wqw-vhfr-9999
  • surrealdb (crates.io) Vendor— Affected before 3.1.0 Fixed in 3.1.0 Patch available GHSA-6wqw-vhfr-9999

Remediation

  • Fix · GHSA-6wqw-vhfr-9999 surrealdb (crates.io) Fixed in 3.1.0 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-6wqw-vhfr-9999

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences