Vulnerability advisory

CVE-2026-81636

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

Published Updated OSV record ↗

Also known as EEF-CVE-2026-81636GHSA-mwc4-r9fc-h6mg

Severity
  • CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Affected versions

Repository

Affected commitsFixed by commit
GIT github.com/ash-project/ash_graphql ↗
d8a3e1b15587180ad9cb3ceeb398863d086c163b to before c3229f6a65cbabb32fd7ffcac881922d1b3b30adc3229f6a65cbabb32fd7ffcac881922d1b3b30ad
9eda8c2cc146a33d94221b7a6ae1719f1625fe66 to before 4e2c5476ecfd2c701488627ee46e6eefc58c982e4e2c5476ecfd2c701488627ee46e6eefc58c982e
Also listed as affected (126)
  • v1.10.1
  • v1.10.0
  • v1.9.4
  • v1.9.3
  • v1.9.2
  • v1.9.1
  • v1.9.0
  • v1.8.5
  • v1.8.4
  • v1.8.3
  • v1.8.2
  • v1.8.1
  • v1.8.0
  • v1.7.17
  • v1.7.16
  • v1.7.15
  • v1.7.14
  • v1.7.13
  • v1.7.12
  • v1.7.11
  • v1.7.10
  • v1.7.9
  • v1.7.8
  • v1.7.7
  • v1.7.6
  • v1.7.5
  • v1.7.4
  • v1.7.3
  • v1.7.2
  • v1.7.1
  • v1.7.0
  • v1.6.0
  • v1.5.1
  • v1.5.0
  • v1.4.7
  • v1.4.6
  • v1.4.4
  • v1.4.3
  • v1.4.2
  • v1.4.1
  • v1.4.0
  • v1.3.4
  • v1.3.3
  • v1.3.2
  • v1.3.1
  • v1.3.0
  • v1.2.1
  • v1.1.1
  • v1.0.1
  • v1.0.0
  • 1.0.0
  • v1.0.0-rc.5
  • v1.0.0-rc.4
  • v1.0.0-rc.3
  • v1.0.0-rc.2
  • v0.28.0
  • v1.0.0-rc.1
  • v1.0.0-rc.0
  • v0.27.1
  • v0.27.0
  • v0.26.9
  • v0.26.8
  • v0.26.7
  • v0.26.5
  • v0.26.4
  • v0.26.3
  • v0.26.2
  • v0.26.1
  • v0.26.0
  • v0.25.13
  • v0.25.12
  • v0.25.11
  • v0.25.10
  • v0.25.9
  • v0.25.8
  • v0.25.7
  • v0.25.6
  • v0.25.5
  • v0.25.4
  • v0.25.3
  • v0.25.2
  • v0.25.1
  • v0.25.0
  • v0.24.1
  • v0.24.0
  • v0.23.3
  • v0.23.2
  • v0.23.1
  • v0.23.0
  • v0.22.13
  • v0.22.12
  • v0.22.11
  • v0.22.10
  • v0.22.9
  • v0.22.8
  • v0.22.7
  • v0.22.6
  • v0.22.4
  • v0.22.3
  • v0.22.2
  • v0.22.1
  • v0.22.0
  • v0.20.4
  • v0.20.3
  • v0.21.0
  • v0.20.2
  • v0.20.1
  • v0.20.0-rc.3
  • v0.20.0-rc.2
  • v0.20.0-rc.1
  • v0.19.0
  • v0.18.0-rc0
  • v0.17.5-rc1
  • v0.17.5-rc0
  • v0.17.5
  • v0.17.4
  • v0.17.3
  • v0.17.2
  • v0.17.1
  • v0.17.0
  • v0.16.28
  • v0.16.27
  • v0.16.26
  • v0.16.25
  • v0.16.24
  • v0.16.23

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.

References

  • Codex
  • Claude Code
  • VS Code
  • GitHub Copilot
  • Cursor
  • Cline
  • Windsurf
  • Google Anti-gravity
  • OpenCode
  • Pi
  • Gemini CLI
  • Hermes Agent
  • Zed
  • Junie
  • Qwen Code
  • Kiro
  • Kilo Code
  • Factory Droid

Set up GitHits for your agents

Run this command:

<> bash
npx githits@latest init

What happens next:

  1. Opens your browser to authorize GitHits
  2. Asks whether to set up GitHits at the user or project level
  3. Detects your supported AI coding tools
  4. Lets you choose which tools to configure
  5. Configures the selected tools