Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-78699— rename_tenant returns :ok on a failed rename, enabling cross-tenant access in AshPostgres

Quick assessment

Affected
ash-project ash_postgres
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

以下是该漏洞描述信息的中文翻译: 在 Ash 项目的 库中存在一个未检查返回值(Unchecked Return Value)漏洞。 漏洞描述 中的未检查返回值漏洞使得能够触发租户重命名的攻击者,可以将租户重命名为与现有租户的架构(schema)冲突的名称。这会导致该租户的记录被指向另一个正在运行的租户的架构,从而让攻击者获得访问该其他租户数据的权限。 技术细节 调用 语句时,使用的是不会抛出异常的 。该函数丢弃了查询返回的 或 结果,并无条件返回 。 当目标架构已存在(或由于权限不足或锁超时)时,PostgreS

CVSS 7.2 · High
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-78699

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
rename_tenant returns :ok on a failed rename, enabling cross-tenant access in AshPostgres
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
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
Source: CVE Program / CVE List V5
Vulnerability Type
未加检查的返回值
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
ash-project ash_postgres 0.25.0 ~ 2.13.0 cpe:2.3:a:ash-project:ash_postgres:*:*:*:*:*:*:*:*
ash-project ash_postgres 03510dae24020e302558ef947be7ea874a9ce756 ~ 8544ab15fe45784553c2d2da8ee1a388eee0174b cpe:2.3:a:ash-project:ash_postgres:*:*:*:*:*:*:*:*

II. Public POCs for CVE-2026-78699

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-78699

登录查看更多情报信息。

Patches & Fixes for CVE-2026-78699 (1)

Vendor Advisories for CVE-2026-78699 (3)

Same Patch Batch · ash-project · 2026-08-30 · 14 CVEs total

CVE-2026-75847 5.9 MEDIUM Sensitive attribute values stored in a non-sensitive public changes map in AshPaperTrail
CVE-2026-77970 5.9 MEDIUM Sensitive fields nested in embedded values are not redacted in AshPaperTrail versions
CVE-2026-78038 5.9 MEDIUM Job argument injection via :args overrides primary_key and tenant in AshOban
CVE-2026-78228 5.9 MEDIUM Unbounded handle_error recursion enables denial of service in AshOban triggers
CVE-2026-77454 5.9 MEDIUM exists/2 predicate silently dropped on limited relationships with a parent() filter in Ash
CVE-2026-81319 5.9 MEDIUM Unsafe deserialization of decrypted terms enables node DoS in AshCloak
CVE-2026-77831 2.1 LOW Algorithmic-complexity denial of service in AshPaperTrail full-diff list tracking
CVE-2026-77846 2.1 LOW JSON path injection via unescaped get_path segments in AshSqlite
CVE-2026-81318 2.1 LOW Distinct-query aggregate drops the tenant schema prefix, leaking across tenants in AshSql
CVE-2026-78691 2.1 LOW Unescaped backslash allows LIKE wildcard injection in AshSql string search
CVE-2026-80227 2.1 LOW SQL string_trim removes only spaces, diverging from in-memory trimming in AshSql
CVE-2026-81316 2.1 LOW Same-named aggregates with differing filters are conflated in AshSql
CVE-2026-81322 2.1 LOW Cloaked plaintext leaks through a non-sensitive action argument in AshCloak

IV. Related Vulnerabilities

V. Comments for CVE-2026-78699

No comments yet


Leave a comment