Executive brief
ash_graphql is a GraphQL library for the Elixir framework that allows real-time updates via subscriptions. This vulnerability allows an attacker who has access to GraphQL subscriptions to receive data updates for records they are not authorized to access, exposing sensitive information that should have been restricted.
Technical details
This is an authorization bypass vulnerability in AshGraphql.Subscription.Batcher's do_send/5 function. The first notification in a batch is correctly filtered with should_send?/1, which blocks unauthorized results (those with forbidden, not_found errors, or no error code). However, subsequent notifications in the same batch are fetched from the process dictionary and re-run through the pipeline without applying the authorization filter before being published. With batching enabled by default and a one-second batch window, two qualifying notifications are sufficient to leak unauthorized data. The fix applies the should_send?/1 filter to the entire batch, not just the first notification.
Affected products
- ash-project ash_graphql 1.4.0 to before 1.11.0
Timeline
- 2026-08-30: disclosed