Skip to main content

Ash Framework EUVDEUVD-2026-68950

| CVE-2026-82745 MEDIUM
Improper Access Control (CWE-284)
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
    Identify ETS/Mnesia-backed resource with user-supplied primary key
  2. Delivery
    Obtain or predict victim record's primary key
  3. Exploit
    Craft create request with colliding primary key
  4. Execution
    Submit via application create endpoint
  5. Persist
    Data layer performs unconditional keyed write
  6. Impact
    Victim record silently overwritten bypassing update policies

Vulnerability Assessment

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

1 technique across 1 tactic: Defense Evasion

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

Exploitation Conditions

Exploitation requires all three of the following conditions simultaneously: (1) the targeted Ash resource must use the ETS (Ash.DataLayer.Ets) or Mnesia (Ash.DataLayer.Mnesia) data layer - resources backed by SQL data layers are entirely unaffected; (2) the resource's create action must accept actor-supplied values for one or more primary key attributes (e.g., an id field marked public?: true with create permissions) - resources where the primary key is exclusively auto-generated server-side without user input cannot be exploited because the attacker cannot choose a colliding key; and (3) the attacker must be able to invoke the create action at whatever privilege level the application's own authorization rules require. Keyless resources (those with no defined primary key) are also exempt because the fix explicitly allows synthetic-key creation for them using make_ref().

Impact

The CVSS 4.0 score of 5.9 (Medium) reflects high integrity impact tempered by the AT:P attack requirement - exploitation depends on the attacker controlling a user-supplied primary key value, which is a non-default configuration in many Ash applications. The AV:L designation in the vendor-provided CVSS 4.0 vector characterizes this as a local application-layer concern, though Ash is commonly deployed as a network-accessible web or API server, making AV:N a plausible alternative framing for affected deployments; this discrepancy should be verified against the specific deployment topology. No CISA KEV listing and no public exploit code mean current real-world risk is limited to informed, targeted attackers who understand the affected application's data model. Applications using SQL data layers such as AshPostgres are entirely unaffected regardless of version. EPSS score was not provided in the input data.

Exploit ScenarioDerived

An attacker with access to a create endpoint for an ETS-backed Ash resource - for example, a GraphQL mutation or REST API call that accepts a user-supplied string ID - submits a create request using the known or predicted primary key of a victim record; because the ETS data layer performed an unconditional keyed write (ETS.Set.put), the victim's record is silently replaced with the attacker's payload, bypassing all update action authorization policies. No public exploit code has been identified; the scenario is inferred directly from the vulnerability description and the reviewed commit diff.

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

Silent record overwrite in Ash's ETS and Mnesia data layers allows any actor who can supply a primary key on a create action to replace an existing record without triggering update action authorization policies. Versions 0.4.0 through 3.32.1 are affected; only deployments using the ETS or Mnesia data layer - not SQL-backed layers - are vulnerable. No public exploit code has been identified and the vulnerability is not listed in CISA KEV, but the integrity impact is high for applications that expose user-controlled primary key creation.

RemediationAI

Upgrade Ash to version 3.32.2 or later, where the ETS data layer uses :ets.insert_new to atomically reject duplicate primary keys and the Mnesia data layer wraps writes in a read-check-write transaction; the patch is available at https://github.com/ash-project/ash/commit/912e243196017c2a812c25905c2b1cc3bbb843fc. If an immediate upgrade is not feasible, audit all ETS- and Mnesia-backed resources and restrict create actions so that primary key fields cannot be supplied by actors - for example, by removing public?: true or excluding primary key fields from the create action's accept list, forcing server-side key generation (e.g., auto-UUID). This workaround prevents attackers from crafting colliding keys but does not fix the underlying uniqueness enforcement gap and must be re-evaluated whenever new resources or create actions are added.

Affected VersionsENISA

ash 6dc699d8a683d542812b34a8c104cc90164add3a <912e243196017c2a812c25905c2b1cc3bbb843fc
ash 0.4.0 <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 (ash-project/ash, cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*) is an Elixir resource framework providing declarative data modeling and action-based authorization. The root cause (CWE-284: Improper Access Control) lies in how the ETS and Mnesia data layers implemented the create action: ETS used ETS.Set.put (which unconditionally overwrites any existing entry at the same key) and Mnesia used Mnesia.write (which likewise replaces without checking existence), as visible in lib/ash/data_layer/ets/ets.ex and lib/ash/data_layer/mnesia/mnesia.ex. SQL data layers avoid this entirely by relying on database-level unique constraints that reject duplicate primary keys. The fix committed at 912e243196017c2a812c25905c2b1cc3bbb843fc replaces ETS.Set.put with :ets.insert_new (an atomic compare-and-insert that fails if the key already exists) and wraps the Mnesia write in a read-check-write transaction, returning a pkey_already_taken_error for both. Resources with no defined primary key are explicitly permitted to continue creating synthetic keyless records using make_ref().

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:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Network vector reflects common web API deployment of Ash; AC:H captures the specific prerequisite of attacker-controlled primary key input; integrity-only impact from silent record overwrite with no confidentiality or availability loss.

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

DescriptionCVE.org

Improper Access Control vulnerability in ash-project ash lets a create action overwrite an existing record when the ETS or Mnesia data layer is used, because neither enforced primary-key uniqueness on insert.

Unlike a SQL data layer, whose unique primary-key constraint rejects a duplicate, the ETS and Mnesia data layers implemented create as a keyed insert that replaces any existing entry with the same primary key (lib/ash/data_layer/ets/ets.ex, lib/ash/data_layer/mnesia/mnesia.ex). An actor who can set the primary key on a create (for example a user-supplied string or integer key) can submit a create whose key matches an existing record and silently overwrite it, destroying and replacing another entity's data without going through the update action or its policies. The fix rejects a create whose primary key already exists with an already-taken error, and only allows duplicates for keyless resources.

This issue affects ash: from 0.4.0 before 3.32.2.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
popular Elixir resource framework, but Elixir has limited enterprise market share
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