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.
Published: 2026-08-30
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via unbounded database read
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises from how the GraphQL query complexity counter calculates the cost of paging arguments. When a client uses the Relay‑style first/last arguments for pagination, the resolver ignores the configured page‑size limits and scores the query as almost trivial, while the database still executes a full read without any bounded limit. An unauthenticated attacker can therefore issue a complex nested query, such as posts(first: 500) { edges { node { comments(first: 500) … } } }, causing the server to read an unbounded number of records from the database. This results in a denial of service due to excessive CPU and memory consumption during query materialization, classified as a resource‑allocation weakness (CWE‑770).

Affected Systems

The flaw exists in the ash‑project ash_graphql library, the GraphQL engine used in the Ash framework. All installations of ash_graphql from version 0.16.23 up until—but not including—version 1.11.0 are affected. The problem is specifically tied to version ranges inclusive of 0.16.23 through 1.10.x. Users running earlier versions (prior to 0.16.23) or the patched releases 1.11.0 and later are not impacted.

Risk and Exploitability

The CVSS score of 8.7 denotes high severity, while the EPSS score is currently not available. The vulnerability is not listed in CISA’s KEV catalog, suggesting that there is no confirmed exploitation in the wild yet, but the impact remains substantial. An attacker needs only unauthenticated access to the GraphQL endpoint and knowledge of the schema to craft a query that triggers the bypass. Once executed, the server may consume excessive resources, causing service unavailable conditions for legitimate clients.

Generated by OpenCVE AI on August 30, 2026 at 19:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update ash‑project ash_graphql to version 1.11.0 or later, where the first and last pagination arguments are properly clamped.
  • Verify that the GraphQL query‑complexity limit configuration is active and that any custom limits remain appropriate for your data set.
  • Implement additional rate‑limiting or connection‑throttling mechanisms on the GraphQL endpoint to protect against brute‑force patterns that could exhaust resources.
  • Review and constrain Relay pagination usage or enforce page‑size limits in any client applications that may inadvertently request excessively large first/last arguments.

Generated by OpenCVE AI on August 30, 2026 at 19:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 31 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


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

{'score': 8.7, 'vector': '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'}


Subscriptions

Ash-project Ash Graphql
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-08-31T15:57:06.465Z

Reserved: 2026-08-30T02:00:02.143Z

Link: CVE-2026-81636

cve-icon Vulnrichment

Updated: 2026-08-31T15:57:00.450Z

cve-icon NVD

Status : Deferred

Published: 2026-08-30T19:17:29.543

Modified: 2026-09-01T21:15:00.147

Link: CVE-2026-81636

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T21:22:33Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling