CVE-2026-96581: ash · Insecure Direct Object Reference
Affects ashSource CVE Database V5
Not known to be exploited · CVSS 7.6 High : upgrade to 3.37.2 soon.
Data as of 26 Oct 2026, 17:30 UTC
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 17% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 3.37.2, c9f0cdb31e7c084def05f3f5be69dd7bb7721754
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NExploitation evidence
Disclosed: evidence found.
CVE published 26 Oct 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade ash to 3.37.2; ash to c9f0cdb31e7c084def05f3f5be69dd7bb7721754.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| ash-projectash | Affected
| Fixed in
|
| ashash-project/ash | Affected
| Fixed in
|
Hexashpkg:hex/ashOther threats | Affected
| Fixed in
|
CPE configurations (1)
cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Upgrade to ash version 3.37.2 or later, where this vulnerability is fixed. No other mitigations are indicated by the vendor advisory.
Description
Authorization Bypass Through User-Controlled Key vulnerability in ash-project ash allows a user of one tenant to read, overwrite and take over another tenant's records via an upserting create action. Under attribute multitenancy, Ash.Actions.Create (lib/ash/actions/create/create.ex) and Ash.Actions.Create.Bulk (lib/ash/actions/create/bulk.ex) upserted on the primary key, or on an all_tenants? identity, without scoping the conflicting record to the request's tenant. A caller of a create action with upsert? true that accepts the primary key, supplying a record id from another tenant, updated that record's upsert fields and received all of its attributes in the result. With the default upsert fields the tenant attribute was written too, moving the record into the caller's tenant. Read and update policies do not run for upserts, and tenant-scoped create policies pass because the tenant is the caller's own. This issue affects ash: from 1.22.0 before 3.37.2.
References
- github.com/ash-project/ash/security/advisories/GHSA-vw7c-67pf-gh96 (opens in a new tab)
- cna.erlef.org/cves/CVE-2026-96581.html (opens in a new tab)
- osv.dev/vulnerability/EEF-CVE-2026-96581 (opens in a new tab)
- github.com/ash-project/ash/commit/2333d01ddf37e5909769a513059b27e3183331c5 (opens in a new tab)
- github.com/ash-project/ash/commit/c9f0cdb31e7c084def05f3f5be69dd7bb7721754 (opens in a new tab)