{"affected":[{"package":{"ecosystem":"Hex","name":"ash_graphql","purl":"pkg:hex/ash_graphql"},"ranges":[{"events":[{"introduced":"0.16.23"},{"fixed":"1.11.0"}],"type":"SEMVER"}],"versions":["0.16.23","0.16.24","0.16.25","0.16.26","0.16.27","0.16.28","0.17.0","0.17.1","0.17.2","0.17.4","0.17.5-rc0","0.17.5","0.18.0-rc0","0.19.0","0.20.0-rc.0","0.20.0-rc.1","0.20.0-rc.2","0.20.0-rc.3","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.21.0","0.22.0","0.22.1","0.22.2","0.22.3","0.22.4","0.22.6","0.22.7","0.22.8","0.22.9","0.22.10","0.22.11","0.22.12","0.22.13","0.23.0","0.23.1","0.23.2","0.23.3","0.24.0","0.24.1","0.25.0","0.25.1","0.25.2","0.25.3","0.25.4","0.25.5","0.25.6","0.25.7","0.25.8","0.25.9","0.25.10","0.25.12","0.25.13","0.26.0","0.26.2","0.26.3","0.26.4","0.26.5","0.26.6","0.26.7","0.26.8","0.26.9","0.27.0","0.27.1","0.28.0","0.28.1","1.0.0-rc.0","1.0.0-rc.1","1.0.0-rc.2","1.0.0-rc.3","1.0.0-rc.4","1.0.0-rc.5","1.0.0","1.0.1","1.1.0","1.1.1","1.2.0","1.2.1","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.5.0","1.5.1","1.6.0","1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16","1.7.17","1.8.0","1.8.1","1.8.2","1.8.3","1.8.4","1.8.5","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.10.0","1.10.1"]},{"ranges":[{"events":[{"introduced":"d8a3e1b15587180ad9cb3ceeb398863d086c163b"},{"fixed":"c3229f6a65cbabb32fd7ffcac881922d1b3b30ad"}],"repo":"https://github.com/ash-project/ash_graphql","type":"GIT"}]}],"aliases":["GHSA-mwc4-r9fc-h6mg","CVE-2026-81636"],"credits":[{"name":"Peter Ullrich","type":"FINDER"},{"name":"Peter Ullrich","type":"REPORTER"},{"name":"Zach Daniel / Ash Project","type":"REMEDIATION_DEVELOPER"},{"name":"Jonatan Männchen / EEF","type":"COORDINATOR"}],"database_specific":{"capec_ids":["CAPEC-130"],"cpe_ids":["cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*"],"cwe_ids":["CWE-770"]},"details":"## Summary\n\nAllocation 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.\n\n`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.\n\nThis issue affects ash_graphql: from 0.16.23 before 1.11.0.","id":"EEF-CVE-2026-81636","modified":"2026-09-08T20:15:02.314021Z","published":"2026-08-30T18:25:29.776Z","references":[{"type":"ADVISORY","url":"https://github.com/ash-project/ash_graphql/security/advisories/GHSA-mwc4-r9fc-h6mg"},{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-81636.html"},{"type":"FIX","url":"https://github.com/ash-project/ash_graphql/commit/c3229f6a65cbabb32fd7ffcac881922d1b3b30ad"},{"type":"PACKAGE","url":"https://hex.pm/packages/ash_graphql"}],"related":[],"schema_version":"1.7.3","severity":[{"score":"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","type":"CVSS_V4"}],"summary":"Query-complexity limit bypass via first/last pagination arguments in AshGraphql enables denial of service","upstream":[]}