Skip to content
OpenAdvisories
High · 8.7 CVE-2026-81636 EEF-CVE-2026-81636EUVD-2026-68286GHSA-mwc4-r9fc-h6mg

Query-complexity limit bypass via first/last pagination arguments in AshGraphql enables denial of service

Published Aug 30, 2026 · Updated Aug 31, 2026 · Assigned by EEF

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.

Affected products

VendorProductAffectedFixed
ash-project ash_graphql 0.16.23 – < 1.11.0 1.11.0

Affected packages

EcosystemPackageAffectedFixedRecord
Hex ash_graphql >= 0.16.23, < 1.11.0 1.11.0 EEF-CVE-2026-81636

References