Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Ash action with atomic confirm on sensitive field
-
DeliverySubmit action omitting confirmed field, providing wrong confirmation
-
ExploitAsh atomic validator resolves mismatch error value via atomic_ref
-
ExecutionStored sensitive field value returned in error payload
-
ImpactAttacker extracts value from error response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Error message sanitization
MITRE ATT&CK
1 technique across 1 tactic: Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | All three of the following conditions must be present simultaneously: (1) the Ash action must be configured with |
| Impact | The CVSS 4.0 base score of 2.1 (AV:L/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N) is consistent with the narrow, condition-dependent nature of the flaw. The AT:P (Attack Conditions: Present) metric correctly encodes that three simultaneous conditions are required before exploitation is possible. The vendor's AV:L rating, however, is potentially understated for production deployments: Ash actions are most commonly exposed over Phoenix HTTP APIs, making AV:N a more realistic representation for many environments - this discrepancy should be verified against the specific application's deployment model. EPSS data is unavailable but is expected to be negligible given the low base score, niche Elixir-ecosystem footprint, and absence of a KEV listing. No independently published POC exists; the fix commit's regression test ( |
| Exploit ScenarioDerived | An attacker with access to an Ash update action that uses |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Sensitive field value disclosure in Ash Framework's atomic confirmation validator allows any caller of a vulnerable action to extract a stored sensitive attribute by intentionally submitting a wrong confirmation argument. Versions 2.17.20 through before 3.32.2 of ash-project/ash are affected: when an actor supplies only the confirmation argument and omits the field itself, the atomic Confirm validator resolves the mismatch error's value through atomic_ref/2 to the field's current stored database value and returns it in the error payload. No public exploit exists beyond the regression test shipped with the fix commit, and this vulnerability does not appear in the CISA KEV catalog.
RemediationAI
Upgrade ash-project/ash to version 3.32.2 or later, which contains the fix introduced in commit 7dfe5f0b1ba4267580ded947dc861351d4dc8e2b (https://github.com/ash-project/ash/commit/7dfe5f0b1ba4267580ded947dc861351d4dc8e2b) and documented in the advisory at https://github.com/ash-project/ash/security/advisories/GHSA-66cg-vj5m-8w7v. If an immediate upgrade is not possible, a targeted workaround is to remove require_atomic? true from any action whose confirm validation guards a sensitive attribute, forcing the non-atomic execution path that does not trigger the atomic_ref/2 resolution; the trade-off is loss of atomic database guarantees for those actions. A second workaround is to modify the action definition to require the original field value as an explicit input alongside the confirmation argument, ensuring that value resolves to the actor-supplied input rather than the stored database value; however, this changes the action's API contract and may break existing callers. Neither workaround is a substitute for patching.
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 is an Elixir resource framework (CPE: cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*) for declaring data resources and actions, typically exposed over HTTP via the Phoenix web framework. The flaw lives in Ash.Resource.Validation.Confirm's atomic/2 function in lib/ash/resource/validation/confirm.ex. When an action runs in atomic mode (require_atomic? true), the validator constructs an Ash.Error.Changes.InvalidChanges struct with a value field; before the fix, that field was populated with value - which atomic_ref/2 resolves to the stored database value of the confirmed attribute - rather than with confirmation, the actor-supplied argument. CWE-209 (Generation of Error Message Containing Sensitive Information) is the root-cause class: the error-reporting mechanism itself becomes the exfiltration channel. The fix is a one-character substitution in the error construction: replacing value with confirmation in the erroneous field assignment, as confirmed by commit 7dfe5f0b1ba4267580ded947dc861351d4dc8e2b.
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:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network vector reflects typical Phoenix/HTTP exposure; AC:H maps to AT:P three-condition requirement; PR:N per vendor vector; low confidentiality only.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash discloses the stored value of a confirmed field to an actor who fails its confirmation check.
Ash.Resource.Validation.Confirm's atomic implementation (atomic/2 in lib/ash/resource/validation/confirm.ex) built the mismatch error with its value set to the field being confirmed. When the actor supplies only the confirmation argument and not the field itself, value resolves through atomic_ref/2 to the field's current stored value, so the mismatch error echoes that stored value back to the actor. Against a confirmation guarding a sensitive attribute, an actor can submit a deliberately wrong confirmation and read the real value from the returned error. The fix reports the actor-supplied confirmation in the error instead of the stored field value.
This issue affects ash: from 2.17.20 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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
CPU exhaustion in Ash Framework's string type constraint handler allows denial of service against Elixir applications th
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_
EUVD-2026-68944
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB