Skip to main content

Ash Framework CVE-2026-82742

| EUVDEUVD-2026-68947 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-09-01 EEF
5.9
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Access
    Identify API endpoint accepting multi-relationship Ash filter input
  2. Delivery
    Craft filter spanning two or more to-many relationship paths
  3. Exploit
    Submit request against resource with large related datasets
  4. Execution
    Trigger eager Cartesian expansion in flatten_relationships/2
  5. Persist
    Exhaust Elixir node heap memory
  6. Impact
    Application availability lost (DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption 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

Exploitation requires that untrusted input reaches Ash.Filter.Runtime.filter_matches/3 with a filter spanning at least two to-many relationship paths, and that the in-memory datasets for those relationships are large enough to trigger combinatorial memory growth - even two relationships with a few hundred rows each suffice. Applications that delegate all filtering to the database layer rather than invoking in-memory evaluation are entirely unaffected. Filters restricted to scalar attributes or a single to-many relationship are also not affected. The CVSS 4.0 AT:P (attack requirements: present) metric explicitly encodes the required deployment condition. There is no confidentiality or integrity impact under any conditions; the sole impact is availability of the Elixir node.

Impact

The vendor CVSS 4.0 score of 5.9 Medium reflects a required attack condition (AT:P) - the presence of multiple to-many relationships with sizeable datasets - which materially limits the exploitable attack surface compared to an unconditional DoS. Availability impact is High (VA:H) with no confidentiality or integrity exposure. EPSS data was not provided, and the vulnerability is not listed in CISA KEV, meaning no confirmed active exploitation is known at time of analysis. Real-world risk is strongly deployment-dependent: applications that expose Ash filter parameters to untrusted API consumers face a practical DoS vector requiring minimal attacker sophistication, while those constructing filters solely from trusted internal logic are at substantially lower risk. The vendor's AV:L vector choice suggests the primary threat model is a developer or operator misusing the API rather than a remote end user, though this distinction collapses when filter parameters are passed unsanitized from HTTP requests. Overall, this is a genuine availability risk in affected deployments but not a broad, indiscriminate threat.

Exploit ScenarioDerived

An attacker identifies a web API endpoint that passes user-supplied filter parameters to Ash's in-memory filter evaluation and crafts a request filtering on two or more to-many relationships - for example, posts filtered simultaneously by tags and comments - against a resource holding hundreds of rows per relationship. Submitting this request triggers eager Cartesian product materialization in flatten_relationships/2, rapidly exhausting Elixir node heap and crashing the application. No public exploit code exists at time of analysis, but the mechanism is straightforward to reproduce from the advisory description alone.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 01, 2026

Memory exhaustion in Ash Framework's runtime filter engine allows an attacker controlling filter inputs to crash an Elixir node by submitting a query that spans multiple to-many relationships against large in-memory datasets. The vulnerable flatten_relationships/2 function in lib/ash/filter/runtime.ex (versions 1.29.0-rc0 through 3.32.2) eagerly materializes the full Cartesian product of related rows before evaluating any predicate, producing O(M^K) intermediate records for K relationships with M rows each. No public exploit has been identified at time of analysis; a vendor-released patch is available in version 3.32.2.

RemediationAI

Upgrade Ash to version 3.32.2 or later, which resolves the issue by replacing eager Cartesian product expansion with lazy streaming evaluation; the patch is documented at https://github.com/ash-project/ash/security/advisories/GHSA-mgwj-c69v-6f83 and commit https://github.com/ash-project/ash/commit/da07f009e889819ec410fa1f0f12534bfb9e21dd. If immediate upgrade is not feasible, restrict user-controlled filter inputs by allowlisting filterable relationship paths in public-facing API handlers to prevent multi-to-many relationship filter combinations from reaching Ash.Filter.Runtime.filter_matches/3; this reduces query expressiveness as a trade-off. Applications that delegate all filtering to the database via Ecto queries and never invoke in-memory filter evaluation are not exposed to this codepath and require no immediate action.

Affected VersionsENISA

ash 1.29.0-rc0 <3.32.2
ash f6f5d194bfc7802bd32e48bf2eabd2d97a0109a4 <da07f009e889819ec410fa1f0f12534bfb9e21dd

Affected Packages

euvd ash fix: 3.32.2

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

Ash (CPE: cpe:2.3:a:ash-project:ash) is an Elixir resource framework for data modeling and querying. The vulnerable codepath is Ash.Filter.Runtime.filter_matches/3, which evaluates filter predicates against records held in application memory rather than delegating to a database. The root cause (CWE-400: Uncontrolled Resource Consumption) is the eager Cartesian product expansion in flatten_relationships/2: for a record with K to-many relationships each containing M rows, the function allocated O(M^K) intermediate combinations before checking any predicate - an exponential blowup that rapidly exhausts Elixir node heap. The patch (commit da07f009e889819ec410fa1f0f12534bfb9e21dd) replaces Enum.flat_map with Stream.flat_map, making the expansion lazy and short-circuiting on the first matching scenario, bounding memory to O(M) per relationship path. A new regression test (test/filter/runtime_flatten_test.exs) confirms that 300-row dual-relationship post fixtures complete under 1,000,000 reductions.

Know when Ash 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 5.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Network vector assigned because Ash filters are typically exposed through web API endpoints; AC:H reflects the required multi-to-many relationship configuration with large datasets; no confidentiality or integrity impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:P/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
Local
Attack Complexity
Low
Attack Requirements
Present
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

Uncontrolled Resource Consumption vulnerability in ash-project ash lets an attacker exhaust node memory by matching a filter that spans multiple to-many relationships in memory.

Ash.Filter.Runtime matches a filter against an in-memory record by first expanding the record into combinations of its related rows. flatten_relationships/2 (lib/ash/filter/runtime.ex) eagerly built the full Cartesian product across the filter's to-many relationship paths, so a record with K to-many relationships of M rows each materialized on the order of M^K scenarios before any predicate was checked. A filter or dataset that reaches several sizeable to-many relationships therefore allocates memory combinatorially and can exhaust the node. The fix streams the expansion lazily and short-circuits on the first matching scenario, bounding the work.

This issue affects ash: from 1.29.0-rc0 before 3.32.2.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche Elixir framework, limited enterprise production footprint
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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.

More in Ash

View all
CVE-2026-55736 MEDIUM POC
5.9 Jun 23

Private argument injection in the Ash Elixir framework (versions 3.0.0 through 3.29.2) allows end users to set action ar

CVE-2021-45688 CRITICAL
9.8 Dec 27

An issue was discovered in the ash crate before 0.33.1 for Rust. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2026-94201 HIGH
8.2 Oct 05

Atom table exhaustion in the Ash framework (Elixir) allows an unauthenticated remote attacker to crash a BEAM node by su

CVE-2026-96581 HIGH
7.6 Oct 26

Cross-tenant record takeover in the Ash framework (Elixir) for versions 1.22.0 up to 3.37.2: when a resource uses attrib

CVE-2026-86338 MEDIUM
6.0 Sep 16

An authorization bypass in the Ash framework (Elixir) lets authenticated, lower-privileged actors recover values they ar

CVE-2026-101028 MEDIUM
6.0 Oct 09

Information disclosure in the Ash framework for Elixir (versions 2.6.0 up to but not including 3.34.6) lets an authentic

CVE-2026-114214 MEDIUM
6.0 Oct 25

An incorrect authorization flaw in the Elixir Ash framework (versions 3.24.0 up to but not including 3.37.1) lets an aut

CVE-2026-82738 MEDIUM
5.9 Sep 01

Persistent record-level denial of service in the ash Elixir resource framework (versions 3.6.3-3.32.1) lets any actor wh

CVE-2026-82737 MEDIUM
5.9 Sep 01

Integer overflow in Ash Framework's vector encoding corrupts stored vectors in any Elixir application using Ash versions

CVE-2026-82735 MEDIUM
5.9 Sep 01

CPU exhaustion in Ash Framework's string type constraint handler allows denial of service against Elixir applications th

CVE-2026-69659 MEDIUM
5.9 Aug 09

Memory exhaustion via decompression bomb in Ash Framework's keyset pagination can terminate Erlang nodes running version

CVE-2026-82752 MEDIUM
5.9 Sep 05

Unbounded string storage in Ash Framework versions 0.10.0 through 3.32.x allows unauthenticated attackers to bypass max_

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