Vulnerability Intelligence Report
AshPostgres returns another tenant's record for a skipped upsert when return_skipped_upsert? is set
CVE-2026-115635
Incorrect Authorization vulnerability in ash-project ash_postgres allows a user to read another tenant's record through a skipped upsert. When Ash.bulk_create/4 or a single create runs as an upsert with return_skipped_upsert?: true and the upsert is skipped (for example because its upsert_condition does not hold), AshPostgres.DataLayer reads the existing row back by the upsert identity in do_bulk_create/3 and upsert/4. That lookup did not apply the resource's attribute multitenancy, so on a resource using strategy :attribute it could match and return the row of another tenant with the same identity values, exposing its fields to the caller. This issue affects ash_postgres: from 2.6.22 before 2.15.2.
No Active Exploit Signals
CVSS Base Score
6.0
MEDIUM
EPSS Probability:0.25%
Executive Threat Verdict
Evaluating...
Evaluating Threat Landscape...
Assessing known weaponization, exploitation telemetry, and federal advisories.
Attack Surface
—
Authentication
—
Weaponization
—
SSVC Action
—
Weaknesses (CWE)
CWE-863 ↗CWE-863 Incorrect Authorization
Affected Products & Versions
| Vendor | Product | Affected Versions |
|---|---|---|
| ash-project | ash_postgres | 2.6.22 < 2.15.2 (affected) |
| ash-project | ash_postgres | af0903f1380468bbe1b61fe65acb33772b5e24a5 < 8aa81220c401cae412d21078d11b3519ea25d3a9 (affected) |
References & Technical Advisories
No reference links found.
Threat Intelligence Signals
EPSS Score
0.246%
Identity & Timeline
| Status | PUBLISHED |
| Assigning Authority | Erlang Ecosystem Foundation · Consortium · USA |
| Reserved | 2026-10-23T13:00:02 |
| Published | 2026-10-25T19:48:43 |
| Last Updated | 2026-10-26T14:35:21 |
Community Chatter & Buzz