CVE-2026-96581

An upsert on the primary key in Ash ignores attribute multitenancy, so one tenant can read, overwrite and take over another tenant's records

HIGH
7.6
CVSS Score
Published: October 26, 2026 at 07:20 AM UTC
Updated: October 26, 2026 at 03:16 PM UTC
1 product affected across 1 vendorAsh

Using ash by ash-project?

Get instant alerts when new vulnerabilities affect ash - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.6
Exploit prediction
EPSS 0.3%
SSVC
No known exploit

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

90%
1.22.02333d01ddf37e5909769a513059b27e3183331c5

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.6HIGHEEF
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-639

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card