Skip to main content

AshGraphql CVE-2026-81636

| EUVDEUVD-2026-68286 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-30 EEF
8.7
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed GraphQL endpoint
  2. Delivery
    Craft nested Relay query with large first/last values
  3. Exploit
    Submit unauthenticated HTTP POST
  4. Execution
    Absinthe scores query as near-zero complexity
  5. Persist
    Complexity guard bypassed, DB executes unbounded fan-out
  6. Impact
    Application and database tier exhausted

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Three conditions must hold simultaneously: (1) the application uses AshGraphql version 0.16.23 through 1.10.x; (2) the GraphQL schema exposes at least one Relay connection or keyset-paginated field (i.e., fields accepting first or last arguments); and (3) an Absinthe max_complexity limit is configured in the schema - without it, there is no guard to bypass, though unlimited queries were already possible in that case. Exploitation is blocked for applications that use only offset/limit pagination (:limit key), since that code path was correctly implemented. The CVSS vector (PR:N/AV:N/UI:N) confirms no authentication is required; any client that can reach the GraphQL endpoint, including unauthenticated public consumers, can trigger the condition. There are no platform or OS restrictions.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) scores 8.7 and accurately reflects the threat profile: no authentication, no special network position, no user interaction required, and high availability impact against both the application and database tier. EPSS data was not included in the provided intelligence and cannot be cited. No CISA KEV listing exists at time of analysis, and no public exploit code has been identified beyond the attack shape published in the advisory itself. The combination of zero prerequisites and a mechanically straightforward exploit construction means the gap between vulnerability disclosure and first exploitation attempt is likely narrow. The sole natural limiting factor is the niche deployment footprint of the Ash/AshGraphql ecosystem within the broader Elixir community, which reduces the total exposed population compared to a similar flaw in a mainstream framework such as graphql-ruby or Strawberry. There is no conflict between the CVSS network vector and the description - remote unauthenticated access is genuinely sufficient.

Exploit ScenarioDerived

An attacker sends an unauthenticated HTTP POST to the application's GraphQL endpoint containing a deeply nested Relay connection query such as posts(first: 500) { edges { node { comments(first: 500) { edges { node { likes(first: 500) { ... } } } } } } }. Absinthe scores this query as near-zero complexity because the first arguments fall through to the child_complexity + 1 catch-all, so it clears any configured max_complexity guard; the database then executes a full fan-out read materializing millions of rows. No public exploit code has been identified, but the attack shape is fully described in the vendor advisory and requires no specialized tooling beyond a standard GraphQL client.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAI

AshGraphql's Absinthe complexity calculator undercounts nested Relay connection and keyset pagination queries, allowing unauthenticated clients to bypass any configured max_complexity cap and force unbounded database reads. Versions 0.16.23 through 1.10.x expose this flaw whenever a schema uses first/last-based pagination: a single crafted query such as posts(first: 500) { edges { node { comments(first: 500) { ... } } } } scores near-zero in Absinthe's guard while materializing up to 250,000 records per request. No active exploitation is confirmed (no CISA KEV listing), but the attack requires no authentication and is trivially constructable from the public advisory description alone.

RemediationAI

Upgrade ash_graphql to version 1.11.0 or later; this release adds explicit first and last clauses to query_complexity/3 that multiply child complexity by the respective page size, closing the bypass for all pagination modes. The fix commit (c3229f6a65cbabb32fd7ffcac881922d1b3b30ad) is available at https://github.com/ash-project/ash_graphql/commit/c3229f6a65cbabb32fd7ffcac881922d1b3b30ad and the full advisory at https://github.com/ash-project/ash_graphql/security/advisories/GHSA-mwc4-r9fc-h6mg. Where an immediate upgrade is not possible, two compensating controls exist: (1) supply a custom Absinthe complexity function that correctly handles first and last arguments - this requires application-level Elixir code changes and must be regression-tested across all pagination modes in use; or (2) disable Relay connection and keyset pagination endpoints entirely in the schema, which eliminates the affected code path but removes that pagination capability for all clients. Both workarounds carry operational cost and should be treated as short-term bridges to patching.

Affected VersionsENISA

ash_graphql 0.16.23 <1.11.0
ash_graphql d8a3e1b15587180ad9cb3ceeb398863d086c163b <c3229f6a65cbabb32fd7ffcac881922d1b3b30ad

Affected Packages

euvd ash_graphql fix: 1.11.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

AshGraphql is an Elixir library that auto-generates Absinthe-based GraphQL APIs for resources defined with the Ash framework. Absinthe enforces query depth and cost limits via per-resolver complexity functions; AshGraphql ships AshGraphql.Graphql.Resolver.query_complexity/3 for this purpose. Prior to version 1.11.0, that function contained a correctly implemented clause for offset pagination that matches the :limit key and multiplies child complexity by the page size, but no equivalent clauses for the first and last arguments used by Relay connections and keyset/cursor pagination. Any query using those arguments fell through to a catch-all returning child_complexity + 1, causing the score to grow linearly with nesting depth (O(depth)) rather than exponentially (O(page_size^depth)). The affected CPE is cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:* for the range 0.16.23 to 1.11.0. CWE-770 (Allocation of Resources Without Limits or Throttling) accurately describes the root cause: the resource-limiting logic was structurally incomplete, leaving an entire pagination mode unthrottled at the complexity-analysis layer.

Know when Ash Graphql gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

Network-accessible unauthenticated endpoint with no complexity barrier; sole impact is availability via unbounded DB reads; no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Technical POC Analysis

CWE-770 (Allocation of Resources Without Limits or Throttling).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
Elixir-specific library within the niche Ash framework ecosystem
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy