Skip to main content

Ash Framework CVE-2026-82744

| EUVDEUVD-2026-68949 LOW
Not Failing Securely ('Failing Open') (CWE-636)
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.Reactor endpoint accepting attacker-influenced input
  2. Delivery
    Craft payload to trigger exception in `where` guard validation
  3. Exploit
    Guard raises, misclassified as unmet condition
  4. Execution
    Security-relevant change silently skipped
  5. Impact
    Request proceeds without enforced policy

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Fail-secure design
Exploitation Conditions

Exploitation requires three concurrent conditions: (1) the target application uses Ash.Reactor with at least one change step gated by a where validation module; (2) the guarded change enforces a security-relevant operation such as authentication verification, authorization enforcement, or mandatory data transformation; and (3) the attacker can supply input that causes the where guard to raise a runtime exception rather than returning a boolean result. Applications where all where guards are written defensively - handling unexpected inputs without raising - or where no security-critical logic is implemented inside Ash.Reactor change steps are not exploitable. The Ash.Reactor feature itself must be in use; plain Ash resource actions without Reactor pipelines are unaffected.

Impact

The CVSS 4.0 base score of 2.1 (AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N) reflects tightly scoped exploitation conditions: the AT:P metric confirms specific attack requirements must be present, meaning the attacker must supply input that causes a guard to raise rather than evaluate to false. The VI:L integrity impact represents a minimal floor, but the provided 'Authentication Bypass' tag signals that researchers consider security-sensitive changes to be plausibly in scope - if the bypassed change enforces authentication, authorization, or mandatory data policy, real-world impact could substantially exceed the base score. The AV:L metric in the provided vector appears conservative for a framework that primarily serves network-exposed web APIs; this warrants verification against specific deployment contexts. No EPSS data was provided; given the specificity of the required exploit path, opportunistic mass exploitation is unlikely. No confirmed active exploitation exists per CISA KEV. The tension between the low CVSS base score and the Authentication Bypass classification means Ash-using teams cannot dismiss this on score alone - they must audit their Ash.Reactor pipelines for any where-gated changes that enforce security policy.

Exploit ScenarioDerived

An attacker submits a crafted payload to a network-exposed Ash-backed API endpoint that passes an unexpected value - such as a nil or mistyped field - to a where guard validation that does not handle it defensively. The guard raises a runtime exception, which the pre-fix framework misclassifies as a non-met condition, silently skipping the guarded change (for example, a role-enforcement or field-sanitization step). The request proceeds as if the guard had passed and the change had run. No public exploit code has been identified for this vulnerability.

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

Ash.Reactor's ChangeStep component in the Elixir Ash framework silently bypasses security-relevant change operations when a where guard raises an exception, instead of halting the step with an error. Applications built on ash versions 3.0.0-rc.17 through 3.32.1 that use Ash.Reactor pipelines with where-gated changes are affected. An attacker who can supply crafted input triggering a guard exception may cause the guarded change to be silently skipped, potentially circumventing authentication, authorization, or mandatory data transformations depending on what that change enforces. No public exploit has been identified and the vulnerability is not listed in CISA KEV.

RemediationAI

The primary fix is upgrading ash to version 3.32.2 or later, which incorporates commit 6d2eb86ea8d2ba5ffac89c1b8b9bf46e331feabc and changes exception handling in Ash.Reactor.ChangeStep to fail closed. The vendor advisory at https://github.com/ash-project/ash/security/advisories/GHSA-3xq4-m876-fr88 should be consulted for release details. If an immediate upgrade is not feasible, a targeted compensating control is to audit all Ash.Reactor pipelines and harden any where guard validation modules that protect security-critical changes so they return an explicit {:error, reason} tuple rather than raising on unexpected input, eliminating the triggerable exception path. This workaround requires application-level code changes and does not address the underlying framework behavior in other guards.

Affected VersionsENISA

ash 321f43bd05ad9544e693cbf797243693e51a6be4 <6d2eb86ea8d2ba5ffac89c1b8b9bf46e331feabc
ash 3.0.0-rc.17 <3.32.2

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:2.3:a:ash-project:ash) is an Elixir resource framework for building data-layer APIs and pipelines. The affected component is Ash.Reactor.ChangeStep in lib/ash/reactor/steps/change_step.ex, which orchestrates change operations within Ash.Reactor workflows. The where clause accepts Ash.Resource.Validation modules as guards; the step only applies its change if all guards evaluate to true. The root cause (CWE-636: Not Failing Securely / Failing Open) was in apply_where_clauses/3: the apply_validation helper rescued all exceptions with a generic error -> {:error, error} branch, and the calling reduce treated any {:error, _} tuple identically to a guard condition returning false - silently skipping the change rather than aborting. The fix in commit 6d2eb86ea8d2ba5ffac89c1b8b9bf46e331feabc introduces a {:raised, error} sentinel so that exceptions are now handled upstream as {:raised, error} -> {:halt, {:error, error}}, causing the step to halt with an error and fail closed.

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:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Network vector because Ash applications typically expose network APIs; AC:H reflects the specific crafted input required to trigger a guard exception rather than a false return; no confidentiality or availability impact from a skipped change step.

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

DescriptionCVE.org

Not Failing Securely (Failing Open) vulnerability in ash-project ash skips an Ash.Reactor change when the guard controlling it raises, so a change meant to run does not.

An Ash.Reactor change step can be gated by where validations that decide whether the change runs. Ash.Reactor.ChangeStep (lib/ash/reactor/steps/change_step.ex) evaluated those guards in apply_where_clauses/3, and apply_validation rescued any exception into {:error, error}. The reduce treated that identically to a guard whose condition was simply not met and bypassed the change. So when a guard raises (for example on attacker-influenced input), a change that enforces a security-relevant modification is skipped rather than failing the step. The fix distinguishes a raised exception (now {:raised, error}) and halts the step with an error, failing closed.

This issue affects ash: from 3.0.0-rc.17 before 3.32.2.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
popular within Elixir ecosystem, limited broader enterprise 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 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

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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