Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed GraphQL endpoint
-
DeliveryCraft nested Relay query with large first/last values
-
ExploitSubmit unauthenticated HTTP POST
-
ExecutionAbsinthe scores query as near-zero complexity
-
PersistComplexity guard bypassed, DB executes unbounded fan-out
-
ImpactApplication and database tier exhausted
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Three conditions must hold simultaneously: (1) the application uses AshGraphql version 0.16.23 through 1.10.x; (2) the GraphQL schema exposes at least one Relay connection or keyset-paginated field (i.e., fields accepting |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) scores 8.7 and accurately reflects the threat profile: no authentication, no special network position, no user interaction required, and high availability impact against both the application and database tier. EPSS data was not included in the provided intelligence and cannot be cited. No CISA KEV listing exists at time of analysis, and no public exploit code has been identified beyond the attack shape published in the advisory itself. The combination of zero prerequisites and a mechanically straightforward exploit construction means the gap between vulnerability disclosure and first exploitation attempt is likely narrow. The sole natural limiting factor is the niche deployment footprint of the Ash/AshGraphql ecosystem within the broader Elixir community, which reduces the total exposed population compared to a similar flaw in a mainstream framework such as graphql-ruby or Strawberry. There is no conflict between the CVSS network vector and the description - remote unauthenticated access is genuinely sufficient. |
| Exploit ScenarioDerived | An attacker sends an unauthenticated HTTP POST to the application's GraphQL endpoint containing a deeply nested Relay connection query such as |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
AshGraphql's Absinthe complexity calculator undercounts nested Relay connection and keyset pagination queries, allowing unauthenticated clients to bypass any configured max_complexity cap and force unbounded database reads. Versions 0.16.23 through 1.10.x expose this flaw whenever a schema uses first/last-based pagination: a single crafted query such as posts(first: 500) { edges { node { comments(first: 500) { ... } } } } scores near-zero in Absinthe's guard while materializing up to 250,000 records per request. No active exploitation is confirmed (no CISA KEV listing), but the attack requires no authentication and is trivially constructable from the public advisory description alone.
RemediationAI
Upgrade ash_graphql to version 1.11.0 or later; this release adds explicit first and last clauses to query_complexity/3 that multiply child complexity by the respective page size, closing the bypass for all pagination modes. The fix commit (c3229f6a65cbabb32fd7ffcac881922d1b3b30ad) is available at https://github.com/ash-project/ash_graphql/commit/c3229f6a65cbabb32fd7ffcac881922d1b3b30ad and the full advisory at https://github.com/ash-project/ash_graphql/security/advisories/GHSA-mwc4-r9fc-h6mg. Where an immediate upgrade is not possible, two compensating controls exist: (1) supply a custom Absinthe complexity function that correctly handles first and last arguments - this requires application-level Elixir code changes and must be regression-tested across all pagination modes in use; or (2) disable Relay connection and keyset pagination endpoints entirely in the schema, which eliminates the affected code path but removes that pagination capability for all clients. Both workarounds carry operational cost and should be treated as short-term bridges to patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AshGraphql is an Elixir library that auto-generates Absinthe-based GraphQL APIs for resources defined with the Ash framework. Absinthe enforces query depth and cost limits via per-resolver complexity functions; AshGraphql ships AshGraphql.Graphql.Resolver.query_complexity/3 for this purpose. Prior to version 1.11.0, that function contained a correctly implemented clause for offset pagination that matches the :limit key and multiplies child complexity by the page size, but no equivalent clauses for the first and last arguments used by Relay connections and keyset/cursor pagination. Any query using those arguments fell through to a catch-all returning child_complexity + 1, causing the score to grow linearly with nesting depth (O(depth)) rather than exponentially (O(page_size^depth)). The affected CPE is cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:* for the range 0.16.23 to 1.11.0. CWE-770 (Allocation of Resources Without Limits or Throttling) accurately describes the root cause: the resource-limiting logic was structurally incomplete, leaving an entire pagination mode unthrottled at the complexity-analysis layer.
Know when Ash Graphql gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-accessible unauthenticated endpoint with no complexity barrier; sole impact is availability via unbounded DB reads; no confidentiality or integrity impact.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Allocation of Resources Without Limits or Throttling vulnerability in ash-project ash_graphql allows an unauthenticated client to bypass the configured GraphQL query-complexity limit and force an unbounded database read.
AshGraphql.Graphql.Resolver.query_complexity/3 multiplies child complexity by the requested page size only when the argument map contains :limit (offset pagination). Relay connections and keyset pagination use first and last, which never match that clause and fall through to the catch-all that returns child_complexity + 1. A nested relay query such as posts(first: 500) { edges { node { comments(first: 500) { ... } } } } therefore scores as trivially cheap while materializing the full fan-out, passing an Absinthe max_complexity cap that rejects the equivalent limit-based query. The fix adds first and last clauses clamped to the action's page size.
This issue affects ash_graphql: from 0.16.23 before 1.11.0.
Technical POC Analysis
CWE-770 (Allocation of Resources Without Limits or Throttling).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Ash Graphql
View allCross-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
GraphQL subscription payloads carrying unauthorized record data leak to authenticated subscribers in ash_graphql 1.4.0-1
Cross-session record leakage in ash_graphql's subscription batcher allows one subscriber's resolved GraphQL records to b
EUVD-2026-68286
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB