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.
Analysis and contextual insights are available on OpenCVE Cloud.
No vendor fix or workaround currently provided.
Additional remediation guidance may be available on OpenCVE Cloud.
Tracking
Sign in to view the affected projects.
No advisories yet.
Sun, 30 Aug 2026 18:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | Query-complexity limit bypass via first/last pagination arguments in AshGraphql enables denial of service | |
| First Time appeared |
Ash-project
Ash-project ash Graphql |
|
| Weaknesses | CWE-770 | |
| CPEs | cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Ash-project
Ash-project ash Graphql |
|
| References |
| |
| Metrics |
cvssV4_0
|
Status: PUBLISHED
Assigner: EEF
Published:
Updated: 2026-08-30T18:25:29.776Z
Reserved: 2026-08-30T02:00:02.143Z
Link: CVE-2026-81636
No data.
Status : Received
Published: 2026-08-30T19:17:29.543
Modified: 2026-08-30T19:17:29.543
Link: CVE-2026-81636
No data.
OpenCVE Enrichment
Updated: 2026-08-30T19:30:17Z
-
CWE-770
Allocation of Resources Without Limits or Throttling