GHSA-6wqw-vhfr-9999 SurrealDB: Authenticated subscribers can read records hidden by SELECT permissions via LIVE subscriptions

Not scored Published

Authenticated users can bypass SELECT permissions to read hidden records by shadowing permission variables in LIVE subscriptions.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is GHSA-6wqw-vhfr-9999?

GHSA-6wqw-vhfr-9999 is a missing authorization vulnerability in surrealdb, published on 1 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

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.

Which versions are affected by GHSA-6wqw-vhfr-9999?

2 open source packages ship an affected version, including surrealdb.

PackageAffectedFixed in
surrealdb crates.ioAll versions3.1.0
surrealdb crates.ioAll versions3.1.0

How do I fix GHSA-6wqw-vhfr-9999?

Upgrade surrealdb to 3.1.0 or later.

Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.

Is GHSA-6wqw-vhfr-9999 being exploited?

There is no known exploitation of GHSA-6wqw-vhfr-9999 in the wild and no public exploit code.

Sources

Is GHSA-6wqw-vhfr-9999 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free