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

Goal: 1000 CNY · Raised: 1359 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 Framework AshPostgres是Ash Framework组织开源的一个 Ash Framework 的 PostgreSQL 数据层。 Ash Framework AshPostgres 0.25.0版本至2.13.0之前版本存在异常处理不当漏洞,该漏洞源于AshPostgres.MultiTenancy.rename_tenant/3函数未检查返回值,可能导致租户重命名时错误地指向其他现有租户的schema,从而访问其数据。

CVSS 7.2 · High EPSS 0.16% · P5

Affected Version Matrix 2

VendorProduct Version RangeStatus
ash-project ash_postgres 0.25.0< 2.13.0 affected
03510dae24020e302558ef947be7ea874a9ce756< 8544ab15fe45784553c2d2da8ee1a388eee0174b affected
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
Vulnerability Title
Ash Framework AshPostgres 异常处理不当漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Ash Framework AshPostgres是Ash Framework组织开源的一个 Ash Framework 的 PostgreSQL 数据层。 Ash Framework AshPostgres 0.25.0版本至2.13.0之前版本存在异常处理不当漏洞,该漏洞源于AshPostgres.MultiTenancy.rename_tenant/3函数未检查返回值,可能导致租户重命名时错误地指向其他现有租户的schema,从而访问其数据。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

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 · 20 CVEs total

CVE-2026-81636 8.7 HIGH Query-complexity limit bypass via first/last pagination arguments in AshGraphql enables de
CVE-2026-80223 7.1 HIGH Cross-tenant subscription disclosure in AshGraphql authorizes notifications in memory with
CVE-2026-78693 6.9 MEDIUM Incomplete redaction re-attaches the original error path in AshGraphql, leaking internal f
CVE-2026-81633 6.9 MEDIUM Unhandled KeyError in AshGraphql relay node resolution crashes queries via an unknown type
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-75847 5.9 MEDIUM Sensitive attribute values stored in a non-sensitive public changes map in AshPaperTrail
CVE-2026-78228 5.9 MEDIUM Unbounded handle_error recursion enables denial of service in AshOban triggers
CVE-2026-78038 5.9 MEDIUM Job argument injection via :args overrides primary_key and tenant in AshOban
CVE-2026-77970 5.9 MEDIUM Sensitive fields nested in embedded values are not redacted in AshPaperTrail versions
CVE-2026-82367 2.3 LOW Re-entrant synchronous publish in AshGraphql subscription batcher delivers one subscriber'
CVE-2026-81643 2.3 LOW Broken access control in AshGraphql subscription batcher applies authorization suppression
CVE-2026-80227 2.1 LOW SQL string_trim removes only spaces, diverging from in-memory trimming in AshSql
CVE-2026-78691 2.1 LOW Unescaped backslash allows LIKE wildcard injection in AshSql string search
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
CVE-2026-81318 2.1 LOW Distinct-query aggregate drops the tenant schema prefix, leaking across tenants in AshSql
CVE-2026-77846 2.1 LOW JSON path injection via unescaped get_path segments in AshSqlite
CVE-2026-77831 2.1 LOW Algorithmic-complexity denial of service in AshPaperTrail full-diff list tracking

IV. Related Vulnerabilities

V. Comments for CVE-2026-78699

No comments yet


Leave a comment