EEF-CVE-2026-115635

Source
https://cna.erlef.org/osv/EEF-CVE-2026-115635.html
Import Source
https://cna.erlef.org/osv/EEF-CVE-2026-115635.json
JSON Data
https://api.osv.dev/v1/vulns/EEF-CVE-2026-115635
Aliases
  • CVE-2026-115635
  • GHSA-36hg-wwp2-fg8w
Published
2026-10-25T19:48:43Z
Modified
2026-10-25T20:11:06Z
Severity
  • 6.0 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
AshPostgres returns another tenant's record for a skipped upsert when return_skipped_upsert? is set
Details

Summary

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.

Impact

A user of one tenant whose upsert is skipped receives another tenant's record with the same identity values.

Configurations

Reachable when a resource uses attribute multitenancy, an action performs upserts with return_skipped_upsert?: true, and a caller can supply identity values that another tenant also uses.

Database specific
{
    "capec_ids":  [
        "CAPEC-1"
    ],
    "cpe_ids":  [
        "cpe:2.3:a:ash-project:ash_postgres:*:*:*:*:*:*:*:*"
    ],
    "cwe_ids":  [
        "CWE-863"
    ]
}
References
Credits
    • Will Townsend - FINDER
    • Will Townsend - REPORTER
    • Zach Daniel / Ash Project - REMEDIATION_DEVELOPER

Affected packages

Hex / ash_postgres

Package

Name
ash_postgres
Purl
pkg:hex/ash_postgres

Affected ranges

Type
SEMVER
Events
Introduced
2.6.22
Fixed
2.15.2

Affected versions

2.*
2.6.22
2.6.23
2.6.24
2.6.25
2.6.26
2.6.27
2.6.28
2.6.29
2.6.30
2.6.31
2.6.32
2.7.0
2.8.0
2.9.0
2.9.1
2.10.0
2.11.0
2.12.0
2.13.0
2.13.1
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.15.0
2.15.1

Database specific

source
"https://cna.erlef.org/osv/EEF-CVE-2026-115635.json"

Git / github.com/ash-project/ash_postgres

Affected ranges

Type
GIT
Repo
https://github.com/ash-project/ash_postgres
Events

Affected versions

v2.*
v2.10.0
v2.11.0
v2.12.0
v2.13.0
v2.13.1
v2.14.0
v2.14.1
v2.14.2
v2.14.3
v2.14.4
v2.14.5
v2.15.0
v2.15.1
v2.6.22
v2.6.23
v2.6.24
v2.6.25
v2.6.26
v2.6.27
v2.6.28
v2.6.29
v2.6.30
v2.6.31
v2.6.32
v2.7.0
v2.8.0
v2.9.0
v2.9.1

Database specific

source
"https://cna.erlef.org/osv/EEF-CVE-2026-115635.json"