Am I affected?

type your ash_phoenix version to check

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.

Weaknesses & attack patterns

Weakness

CWE-863 · Incorrect Authorization in catalog → MITRE ↗

Attack patterns

CAPEC-1 · Accessing Functionality Not Properly Constrained by ACLs MITRE ↗

Affected — Hex / ash_phoenix Hex.pm ↗ Repository ↗

2.1.26 < 2.3.25 affected
every other version: unaffected
cpe cpe:2.3:a:ash-project:ash_phoenix:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.AshPhoenix.LiveView.SubdomainHook'
source files lib/ash_phoenix/live_view/subdomain_hook.ex
routines 'Elixir.AshPhoenix.LiveView.SubdomainHook':on_mount/4

Affected — GitHub / ash-project/ash_phoenix Repository ↗

9a5ea4d < b396e1a affected
every other version: unaffected
cpe cpe:2.3:a:ash-project:ash_phoenix:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.AshPhoenix.LiveView.SubdomainHook'
source files lib/ash_phoenix/live_view/subdomain_hook.ex
routines 'Elixir.AshPhoenix.LiveView.SubdomainHook':on_mount/4

Configurations

The application uses AshPhoenix.LiveView.SubdomainHook with a handle_subdomain callback as a tenant-scoped authorization gate.

References

Credits

Peter Ullrich Finder Reporter
Zach Daniel / Ash Project Remediation developer
Jonatan Männchen / EEF Coordinator

CVSS breakdown

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
« All CVEs