Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Timing condition requiring two events in the same batch window raises AC:H; authenticated subscriber mandatory raises PR:L; only limited subscription field data disclosed so C:L.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
Lifecycle Timeline
3DescriptionCVE.org
Incorrect Authorization vulnerability in ash-project ash_graphql delivers GraphQL subscription payloads for records a subscriber is not authorized to see.
In AshGraphql.Subscription.Batcher, do_send/5 resolves the first notification of a batch and filters it with should_send?/1, which drops results whose errors are coded forbidden or not_found or carry no code, precisely so that unauthorized results are not disclosed. The remaining notifications in the batch are read from the process dictionary, re-run through the pipeline, and appended to the outgoing results without that filter. They reach pubsub.publish_subscription/2, and the not is_nil(record) guard drops only nil records, not error-carrying results. Any two qualifying notifications arriving within the default one-second batch interval suffice, and batching is the default path. The fix applies should_send?/1 to the whole batch.
This issue affects ash_graphql: from 1.4.0 before 1.11.0.
AnalysisAI
GraphQL subscription payloads carrying unauthorized record data leak to authenticated subscribers in ash_graphql 1.4.0-1.10.x due to a missing authorization filter in the batch-processing codepath of AshGraphql.Subscription.Batcher. When two or more subscription notifications arrive within the default one-second batching window, only the first is passed through the should_send?/1 authorization gate; all subsequent notifications in the same batch bypass that check entirely and are published to the subscriber's WebSocket connection. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Three conditions must hold simultaneously: (1) The attacker is an authenticated user with a valid GraphQL subscription open on ash_graphql (PR:L - unauthenticated exploitation is not possible); (2) at least two subscription notification events for records the attacker is not authorized to access must arrive within the same batch interval, which defaults to one second (AT:P - the specific timing prerequisite that prevents trivial single-event exploitation); (3) ash_graphql 1.4.0-1.10.x must be deployed with GraphQL subscriptions enabled and the Batcher running (batching is the default path). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 4.0 score of 2.3 (AV:N/AC:L/AT:P/PR:L/UI:N/VC:L) correctly reflects a tightly constrained exploitability profile: the attacker must hold a valid authenticated subscriber session (PR:L), and two notifications for unauthorized records must coincide within the same batch window (AT:P - a specific timing prerequisite). … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade to ash_graphql 1.11.0 or later, which applies should_send?/1 across the entire notification batch in AshGraphql.Subscription.Batcher, as delivered in patch commit e8e67f39add2ce0771e6db5f086afe68ba212c57. … Detailed patch versions, workarounds, and compensating controls in full report. |
Threat intelligence, references, and detailed analysis are available after sign-in.
More in Ash Graphql
View allAshGraphql's Absinthe complexity calculator undercounts nested Relay connection and keyset pagination queries, allowing
Cross-tenant data disclosure in ash_graphql affects authenticated subscribers in multi-tenant deployments running versio
Internal Ash attribute and argument names leak through GraphQL error responses in ash_graphql 1.9.0 through 1.10.x, bypa
Relay node query crash in AshGraphql (ash_graphql 0.27.0 through 1.10.x) allows an unauthenticated remote caller to abor
Cross-session record leakage in ash_graphql's subscription batcher allows one subscriber's resolved GraphQL records to b
Same weakness CWE-863 – Incorrect Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-68284