Skip to main content

Ash Framework CVE-2026-82739

| EUVDEUVD-2026-68944 LOW
Error Message Information Leak (CWE-209)
2026-09-01 EEF
2.1
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Access
    Identify Ash action with atomic confirm on sensitive field
  2. Delivery
    Submit action omitting confirmed field, providing wrong confirmation
  3. Exploit
    Ash atomic validator resolves mismatch error value via atomic_ref
  4. Execution
    Stored sensitive field value returned in error payload
  5. Impact
    Attacker 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 require_atomic? true, forcing the atomic/2 code path in Ash.Resource.Validation.Confirm rather than the non-atomic fallback; (2) the action is defined such that the actor can submit the confirmation argument (confirm_secret) without also supplying the original confirmed field (:secret), causing atomic_ref/2 to fall back to the stored database value; and (3) the confirmed attribute holds genuinely sensitive data such as a password, API key, or secret token - disclosure of non-sensitive fields is not a security event. Exploitation yields read-only disclosure of a single field value per request; there is no integrity or availability impact. Authentication requirements are entirely determined by how the consuming Phoenix or API layer exposes the action - the Ash framework itself imposes no authentication on this path (PR:N in the vendor CVSS vector), so an unauthenticated actor can exploit this if the endpoint is publicly reachable.

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 (test/actions/validation_test.exs) functions as a minimal, readable proof-of-concept. Real-world risk is meaningful only in applications that combine atomic confirm validation on a genuinely sensitive attribute with an action interface that accepts the confirmation argument without requiring the original field value as input.

Exploit ScenarioDerived

An attacker with access to an Ash update action that uses require_atomic? true and validates via confirm(:secret, :confirm_secret) sends the action with only confirm_secret set to a known-wrong string, omitting the :secret field itself. The atomic validator resolves the mismatch error's value to the current stored database value of :secret and returns it in the Ash.Error.Changes.InvalidChanges error payload. The attacker reads the real secret from the returned error in a single unauthenticated (or minimally authenticated, depending on application policy) request.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.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

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

ash 2.17.20 <3.32.2
ash fadecf3ee95640bd3bc7298df4799e0375537fd2 <7dfe5f0b1ba4267580ded947dc861351d4dc8e2b

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 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

Vendor (EEF) PRIMARY 2.1 LOW
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
vuln.today AI 3.7 LOW

Network vector reflects typical Phoenix/HTTP exposure; AC:H maps to AT:P three-condition requirement; PR:N per vendor vector; low confidentiality only.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/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
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
Elixir-specific framework, niche adoption outside Elixir/Phoenix ecosystem
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 LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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