Vulnerability · Published Aug 31, 2026 · Assigned by EEF
CVE-2026-82724Broken access control in AshPhoenix SubdomainHook via a nil tenant in handle_subdomain
High 7.6
In plain English
A high-severity incorrect authorization in ash_phoenix from ash-project. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 37% of all known vulnerabilities).
Official description
Incorrect Authorization vulnerability in ash-project ash_phoenix invokes the SubdomainHook authorization callback with a nil tenant, so tenant-scoped access checks never see the tenant they are meant to enforce. AshPhoenix.LiveView.SubdomainHook.on_mount/4 attached a handle_params hook to assign the tenant and then immediately called handle_subdomain in the same on_mount. The tenant assign is only written when LiveView later runs handle_params, strictly after on_mount returns, so handle_subdomain read an unset assign and ran as apply(m, f, [socket, nil | a]). A consumer gate that halts when the user does not belong to the tenant instead evaluated nil, either crashing or taking a permissive branch, and it was never re-run once the real subdomain was assigned or on later navigations. The fix runs handle_subdomain inside the handle_params hook with the real tenant on every navigation. This issue affects ash_phoenix: from 2.1.26 before 2.3.25.
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| ash-project | ash_phoenix | 2.1.26 – before 2.3.25 |
| ash-project | ash_phoenix | 9a5ea4d377bc263de321d79574872a3dfc4fb541 – before b396e1aa5c6bdec39255f19cf938b539e6d28b71 |
Weakness: CWE-863 · Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
References
- https://github.com/ash-project/ash_phoenix/security/advisories/GHSA-39c8-xcwr-gqff vendor-advisory, related
- https://cna.erlef.org/cves/CVE-2026-82724.html related
- https://osv.dev/vulnerability/EEF-CVE-2026-82724 related
- https://github.com/ash-project/ash_phoenix/commit/b396e1aa5c6bdec39255f19cf938b539e6d28b71 patch