CVE-2026-82742

Ash.Filter.Runtime materializes a combinatorial cross-product over to-many relationships, exhausting memory

Published Sep 1, 2026 CVSS 4.0 · 5.9 Medium EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

Uncontrolled Resource Consumption vulnerability in the Ash library allows an attacker to trigger a catastrophic memory exhaustion by crafting a filter that spans multiple to‑many relationships. The runtime expands the filter into a full Cartesian product over these relationships, allocating memory on the order of M^K scenarios before evaluating the actual predicate. This excessive allocation can deplete node memory, potentially causing the node to become unresponsive or crash. The weakness is a classic out‑of‑memory condition identified by CWE‑400.

Affected Systems

The vulnerability affects the Ash project’s Ash library from release 1.29.0‑rc0 up to, but not including, version 3.32.2. Those running any earlier or same‑version release are susceptible.

Risk and Exploitability

The CVSS score of 5.9 indicates moderate severity. EPSS data is not available, and the vulnerability is not listed in the CISA KEV catalog, suggesting no known widespread exploitation at this time. The attack likely requires an attacker to submit a carefully constructed filter expression that traverses several large to‑many relationship paths If such a filter is executed within a production node, the combinatorial expansion will consume memory, potentially leading to denial of service for all users of that node.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Ash library to version 3.32.2 or later, which streams the relationship expansion lazily and stops on the first match.
  • If an upgrade cannot be performed immediately, review and restrict filter configurations to avoid large to‑many relationship paths and enforce strict limits on dataset size.
  • Implement resource limits or monitoring on the node to detect abnormal memory consumption and automatically restart or throttle the process when thresholds are exceeded.

Generated by OpenCVE AI on September 1, 2026 at 04:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description 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.
Title Ash.Filter.Runtime materializes a combinatorial cross-product over to-many relationships, exhausting memory
First Time appeared Ash-project
Ash-project ash
Weaknesses CWE-400
CPEs cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash
References
Metrics cvssV4_0

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

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

Sources

Status
PUBLISHED
Assigner
EEF
Published
Updated
Sep 1, 2026, 12:41 PM
Reserved
Aug 31, 2026, 1:00 AM
Status
Deferred
Published
Sep 1, 2026, 4:18 AM
Modified
Sep 1, 2026, 9:15 PM