CVE-2025-48044: Ash has authorization bypass when bypass policy condition evaluates to true
8.1
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
-
CWE
Published
10/17/2025
Updated
10/17/2025
KEV Status
No
Technology
Erlang
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
ash | erlang | >= 3.6.3, <= 3.7.0 | 3.7.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability is an authorization bypass in the ash
Elixir library. The provided patch clearly shows the modification in the lib/ash/policy/policy.ex
file within the Ash.Policy.Policy.expression/2
function. The change from b(cond_expr or one_condition_matches)
to b(complete_expr or one_condition_matches)
fixes the bug where a bypass policy's condition being true would incorrectly satisfy the authorization check, even if the policy's authorization checks failed. The vulnerable function is therefore Ash.Policy.Policy.expression
, as it contains the flawed logic that leads to the authorization bypass.
Vulnerable functions
Ash.Policy.Policy.expression
lib/ash/policy/policy.ex
The vulnerability lies in the `expression` function, specifically in how it handles bypass policies. The logic incorrectly used the policy's condition (`cond_expr`) to determine if at least one policy condition matched, rather than the complete expression (`complete_expr`), which also includes the authorization checks. This allowed a request to be authorized if a bypass policy's condition was met, even if the authorization checks within that policy failed.