HighGHSA-9vjf-j9f7-j42c24 Sep · 30 days ago
Source ↗

Client-supplied bytes are spliced unvalidated into other subscribers' JSON frames, letting any broadcaster forge Realtime protocol events (including postgres_changes) to every other client on the channel.

Does it affect you?

Not read yet

Conditions are read within the hour after an advisory comes in.

Summary The bytes a client sends as a V2 binary user broadcast are spliced verbatim into the JSON text frame that other clients receive, without ever being parsed or validated. Any client that may broadcast on a channel can therefore write arbitrary top-level Realtime protocol fields into the frames every other subscriber on that channel receives, including a forged postgres changes database-change event and a forged phx close . On a public channel no authorization of any kind is involved: the anon key is published in every client bundle by design, and public channels run with policies: nil .

Timeline

24 Sep
30 daysfrom publication to Patchwire
  1. Published by GitHub advisory24 Sep
  2. Seen by Patchwire23 Oct
supabase/realtimeNo fix yet

Related alerts(1)

Same packages
High
Exploitable only if · read by Claude, the source remains the reference
  • Self-hosted Supabase Realtime deployment serving multiple tenants.
  • Clients or users can choose their own tenant external id (e.g. user-defined project names) through the management API.
  • An attacker can create a tenant whose external id equals the victim's tenant id followed by "-private".
  • The victim tenant uses private (RLS-protected) broadcast channels.
Affected
in the source
Fixed in
no fix yet
ID
GHSA-2rcv-vpjw-5g6c
Open the alert