Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Ash string endpoint
-
DeliverySubmit over-length payload
-
ExploitLength check fails but regex still evaluates
-
ExecutionRegex exhausts CPU on full attacker input
-
PersistRepeated concurrent requests starve BEAM scheduler
-
ImpactDenial of service
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 | The vulnerable code path is reached only when an Ash resource attribute is configured with both a |
| Impact | The provided CVSS 4.0 vector (5.9, AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H) contains an AV:L (Local) designation that conflicts with the described attack model: in a typical Ash deployment within a Phoenix web application, string input arrives via HTTP requests, making the effective attack vector network-accessible for most production deployments. This discrepancy likely understates real-world exposure and should be verified with the Erlang Ecosystem Foundation CNA. The AT:P qualifier (specific attack conditions required) accurately reflects that the vulnerable code path is only reached when an Ash attribute defines both a |
| Exploit ScenarioDerived | An attacker targeting a Phoenix web application backed by Ash identifies an API parameter or form field that maps to an Ash string attribute configured with both a |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
CPU exhaustion in Ash Framework's string type constraint handler allows denial of service against Elixir applications that use Ash string attribute validation with both length and regex match constraints. The Ash.Type.String.apply_constraints/2 function evaluated the :match regex unconditionally, even when a length constraint had already failed, allowing attacker-controlled input of arbitrary size to reach the regex engine directly. Against backtracking patterns this produces catastrophic exponential evaluation time; against linear patterns, CPU cost scales with input size, enabling sustained per-request service degradation. No public exploit has been identified at time of analysis.
RemediationAI
Upgrade Ash to version 3.32.2 or later, which incorporates the fix from commit 14928412a1a94a69c47df8e98920d3a2b09cdec4. The vendor advisory at https://github.com/ash-project/ash/security/advisories/GHSA-mq7g-pffw-m8xh confirms this as the patched release. If an immediate upgrade is not feasible, audit all Ash resource attributes that define both a :match regex and a length constraint on the same attribute, and temporarily remove the :match constraint from such attributes - this eliminates the expensive code path at the cost of losing pattern validation until the upgrade is applied. Placing an upstream request body size limit at the reverse proxy or load balancer (e.g., nginx client_max_body_size) can reduce maximum input size reaching the Ash validation layer, mitigating but not eliminating exposure for inputs below the proxy limit. Rate-limiting affected endpoints at the API gateway reduces the sustained CPU impact of repeated requests as an additional compensating control.
Affected VersionsENISA
Affected Packages
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:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*) is an Elixir resource framework built on the BEAM VM, commonly used with Phoenix LiveView to model domain resources with typed attributes and declarative constraint pipelines. The affected code path is Ash.Type.String.apply_constraints/2 in lib/ash/type/string.ex, which processes constraints on string-typed attributes. CWE-400 (Uncontrolled Resource Consumption) applies directly: the :match regex constraint was evaluated regardless of whether :min_length or :max_length checks had already flagged a violation. Because length constraints are intended to bound the maximum input size for downstream operations, bypassing them caused unbounded - attacker-sized - input to reach the BEAM regex engine. On backtracking-capable patterns this yields exponential time complexity; on deterministic linear patterns, CPU cost still scales proportionally with input length. The fix in commit 14928412 wraps regex evaluation in a length_ok?/2 guard that skips the pattern whenever any length constraint is violated, making the two checks order-independent.
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
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
Network-reachable via HTTP input to Ash-backed web apps; no authentication required; availability-only impact via CPU exhaustion.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Uncontrolled Resource Consumption vulnerability in ash-project ash allows an attacker to force an expensive regular expression to run on input that a length constraint should have already rejected.
Ash.Type.String.apply_constraints/2 (lib/ash/type/string.ex) evaluated the :match regex regardless of the min_length and max_length constraints on the same attribute. Because the length check did not gate the regex, an over-length value that the length constraint rejects still had the pattern applied to it, so the length limit that would otherwise bound the work never constrained the regex input. Against a backtracking pattern this yields catastrophic regex evaluation on attacker-sized input, and even a linear pattern runs on arbitrarily large input, consuming CPU per request. The fix skips the :match regex whenever a length constraint is violated, making the two checks order-independent.
This issue affects ash: from 0.10.0 before 3.32.2.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Private argument injection in the Ash Elixir framework (versions 3.0.0 through 3.29.2) allows end users to set action ar
An issue was discovered in the ash crate before 0.33.1 for Rust. Rated critical severity (CVSS 9.8), this vulnerability
Atom table exhaustion in the Ash framework (Elixir) allows an unauthenticated remote attacker to crash a BEAM node by su
Cross-tenant record takeover in the Ash framework (Elixir) for versions 1.22.0 up to 3.37.2: when a resource uses attrib
An authorization bypass in the Ash framework (Elixir) lets authenticated, lower-privileged actors recover values they ar
Information disclosure in the Ash framework for Elixir (versions 2.6.0 up to but not including 3.34.6) lets an authentic
An incorrect authorization flaw in the Elixir Ash framework (versions 3.24.0 up to but not including 3.37.1) lets an aut
Persistent record-level denial of service in the ash Elixir resource framework (versions 3.6.3-3.32.1) lets any actor wh
Integer overflow in Ash Framework's vector encoding corrupts stored vectors in any Elixir application using Ash versions
Memory exhaustion via decompression bomb in Ash Framework's keyset pagination can terminate Erlang nodes running version
Unbounded string storage in Ash Framework versions 0.10.0 through 3.32.x allows unauthenticated attackers to bypass max_
Memory exhaustion in Ash Framework's runtime filter engine allows an attacker controlling filter inputs to crash an Elix
EUVD-2026-68962
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB