Description
Unchecked Return Value vulnerability in ash-project ash_postgres allows a user who can drive a tenant rename to a name that collides with an existing tenant's schema to have their tenant record repointed at that other tenant's live schema, gaining access to its data.

AshPostgres.MultiTenancy.rename_tenant/3 issues the ALTER SCHEMA ... RENAME TO ... with the non-raising Ecto.Adapters.SQL.query/2, discards its {:ok, _} | {:error, _} result, and unconditionally returns :ok. PostgreSQL rejects the rename when the target schema already exists (and on insufficient privilege or lock timeout), but that failure never reaches the caller. The calling manage_tenant update action therefore sees success and commits the tenant row with the new name, which is the schema of a different existing tenant, so subsequent reads and writes for that tenant run against the other tenant's data.

This issue affects ash_postgres: from 0.25.0 before 2.13.0.
Published: 2026-08-30
Score: 7.2 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

AshPostgres exposes an unchecked return value during tenant renaming: the rename_tenant function executes a schema rename SQL statement and always returns :ok regardless of success or failure. When a rename attempt conflicts with an existing tenant’s schema, PostgreSQL rejects the operation, but the error is never propagated to the application. Consequently, the tenant record is updated with a name that points to another tenant’s live schema, enabling the attacker to read, write, and delete the other tenant’s data as if it were theirs. This flaw represents a direct authorization bypass with potential exposure of confidential customer information.

Affected Systems

The vulnerability exists in ash-project AshPostgres from version 0.25.0 up to, but not including, 2.13.0. Any installation within this range that permits tenant rename operations is affected.

Risk and Exploitability

The CVSS score of 7.2 indicates high severity, but the EPSS score is unavailable, so the precise likelihood of exploitation is unknown. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires the attacker to have the ability to trigger a tenant rename operation; the renaming step must attempt to collide with an existing tenant name. When these conditions are met, the attacker can effortlessly gain read/write access to another tenant’s data without needing additional privileges.

Generated by OpenCVE AI on August 30, 2026 at 16:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade AshPostgres to version 2.13.0 or later, which adds proper error handling for tenant renaming.
  • Restrict access to the tenant rename functionality, ensuring that only authorized administrators can trigger rename operations.
  • Validate tenant names against existing tenant schemas before initiating a rename to prevent name collisions.

Generated by OpenCVE AI on August 30, 2026 at 16:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 30 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Description Unchecked Return Value vulnerability in ash-project ash_postgres allows a user who can drive a tenant rename to a name that collides with an existing tenant's schema to have their tenant record repointed at that other tenant's live schema, gaining access to its data. AshPostgres.MultiTenancy.rename_tenant/3 issues the ALTER SCHEMA ... RENAME TO ... with the non-raising Ecto.Adapters.SQL.query/2, discards its {:ok, _} | {:error, _} result, and unconditionally returns :ok. PostgreSQL rejects the rename when the target schema already exists (and on insufficient privilege or lock timeout), but that failure never reaches the caller. The calling manage_tenant update action therefore sees success and commits the tenant row with the new name, which is the schema of a different existing tenant, so subsequent reads and writes for that tenant run against the other tenant's data. This issue affects ash_postgres: from 0.25.0 before 2.13.0.
Title rename_tenant returns :ok on a failed rename, enabling cross-tenant access in AshPostgres
First Time appeared Ash-project
Ash-project ash Postgres
Weaknesses CWE-252
CPEs cpe:2.3:a:ash-project:ash_postgres:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash Postgres
References
Metrics cvssV4_0

{'score': 7.2, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Ash-project Ash Postgres
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-08-30T15:13:23.875Z

Reserved: 2026-08-30T06:00:01.261Z

Link: CVE-2026-78699

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-30T16:16:42.623

Modified: 2026-08-30T16:16:42.623

Link: CVE-2026-78699

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-30T16:30:17Z

Weaknesses