Skip to main content

Ash Framework EUVDEUVD-2026-68966

| CVE-2026-82747 MEDIUM
Incorrect Authorization (CWE-863)
2026-09-01 EEF
5.9
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Access
    Query resource with runtime read policy
  2. Delivery
    Authorizer reduces all record scenarios to impossible (denial certain)
  3. Exploit
    Empty-scenario branch retains denied record instead of dropping it
  4. Execution
    Denied records returned as authorized output
  5. Impact
    Attacker receives confidential records they are explicitly forbidden from reading

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the targeted Ash resource explicitly declares one or more read policies with access_type :runtime - a non-default configuration where checks are evaluated per-record rather than compiled into database filters. Resources using only the default filter-based read policies are NOT vulnerable. The actor performing the query requires no special privileges beyond whatever the application grants to issue a read - if the application permits unauthenticated reads, unauthenticated actors are equally affected; if reads require application-level authentication, that authentication must first be satisfied. The flaw is limited strictly to read actions; create, update, and destroy policy paths are unaffected. Exploitation is further bounded to Ash versions 3.4.44 through 3.32.1.

Impact

The CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N) scores 5.9, with high confidentiality impact constrained by AT:P (attack requirements present: the resource must be configured with access_type :runtime) and AV:L. The AV:L designation likely reflects that this is a library-level flaw rather than a directly exposed network service, but it may understate real-world exposure: Ash-based applications are frequently network-accessible APIs where any application user - authenticated or not, depending on the app's own auth posture - could retrieve unauthorized records through a normal API call. No EPSS score was provided; exploitation probability cannot be independently quantified. The issue is not in CISA KEV and no public exploit code has been identified, suggesting targeted rather than opportunistic exploitation risk at present. The primary limiting factor is that only resources explicitly opting into access_type :runtime policies are affected; the default filter-based policy path is not vulnerable. Overall real-world priority is moderate: low in environments without runtime-typed read policies, high in those that rely on runtime checks for record-level confidentiality.

Exploit ScenarioDerived

A user of an Ash-based application issues a standard read request against a resource that has an access_type :runtime read policy - such as a policy that restricts records to the current user's own data. The Ash authorizer evaluates per-record scenarios, determines all authorization paths are impossible for a denied record, and due to the empty-scenario bug, appends those records to the authorized result. The caller receives records they are explicitly denied, indistinguishable from legitimately authorized results, requiring only a normal API call and no special tooling.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

Record-level authorization bypass in Ash (ash-project) versions 3.4.44 through 3.32.1 silently leaks denied records to any actor when resources use access_type :runtime read policies. A logic error in Ash.Policy.Authorizer.check_result/1 causes the empty-scenario branch - reached when all policy paths for a record are impossible and the record must be forbidden - to instead keep and return the record as authorized. No public exploit has been identified at time of analysis; the vendor confirmed the issue and released a fix in version 3.32.2.

RemediationAI

Upgrade Ash to version 3.32.2 or later, which contains the one-line authorizer fix in lib/ash/policy/authorizer/authorizer.ex (commit 6eddb8ab26e45023faf0c79ebd152bb40aefda02 at https://github.com/ash-project/ash/commit/6eddb8ab26e45023faf0c79ebd152bb40aefda02). The vendor security advisory is at https://github.com/ash-project/ash/security/advisories/GHSA-4259-gvr2-4xhq. If immediate upgrade is not feasible, a compensating control is to convert affected resources from access_type :runtime read policies to filter-based policies (the default), which bypass the vulnerable code path entirely; this trade-off is that filter-based checks must be expressible as data-layer query conditions and cannot use arbitrary Elixir business logic, so migration may not be possible for all resources. Alternatively, restrict access to the affected read actions at the application or network layer - for example, by requiring elevated authentication or IP allowlisting - until the patch is applied.

Affected VersionsENISA

ash f4a8ff53fd3b974468d73685cd3fc842ef893de3 <6eddb8ab26e45023faf0c79ebd152bb40aefda02
ash 3.4.44 <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 is an Elixir framework for building resources, APIs, and applications declaratively. Its authorization system (Ash.Policy.Authorizer) evaluates read access via a scenario-based model: policies are either filter-based (compiled into database queries before retrieval) or runtime checks (evaluated per-record after retrieval). CWE-863 (Incorrect Authorization) manifests in check_result/1 at lib/ash/policy/authorizer/authorizer.ex: when scenario reduction determines that all policy paths for a given record are impossible - meaning no check combination can authorize it - the empty-scenario branch incorrectly executed {[record | data], authorizer, any_forbidden?}, appending the record to the authorized result list. The one-line fix changes this to {data, authorizer, true}, dropping the record and setting the forbidden flag. CPE cpe:2.3:a:ash-project:ash covers all affected releases from 3.4.44 up to (exclusive) 3.32.2.

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 5.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

AV:N for network-exposed Ash APIs; AC:H for the required access_type :runtime configuration; PR:N since any actor is affected regardless of privilege; C:H for full unauthorized record disclosure; no integrity or availability impact.

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

DescriptionCVE.org

Incorrect Authorization vulnerability in ash-project ash returns records that a runtime read policy denies to any actor.

When a resource has an access_type :runtime read policy (a check evaluated per record rather than compiled to a filter), Ash.Policy.Authorizer decides each record in check_result/1 (lib/ash/policy/authorizer/authorizer.ex) by discarding impossible policy scenarios and inspecting what remains. When every scenario for a record was impossible, meaning no policy can authorize it and it must be forbidden, the empty-scenario branch instead kept the record ({[record | data], authorizer, any_forbidden?}) and returned it as authorized. As a result, records the runtime read policy denies are returned to any actor. The fix forbids a record whose scenarios are all impossible.

This issue affects ash: from 3.4.44 before 3.32.2.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
Elixir ecosystem framework, niche language deployment 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

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