CVE-2025-48042:Ash框架授权绕过漏洞
描述
概要
某些批量操作调用,当包含 before_transaction 钩子但没有 after_transaction 钩子时,在以批量操作方式调用时,会在授权检查之前执行 before_transaction 钩子,然后返回 Forbidden 错误。
影响:恶意用户即使未被授权执行完整操作,也可能导致 before_transaction 钩子运行。该 before_action 可能执行敏感或昂贵的操作。
影响范围
如果您的 create、update 或 destroy 操作满足以下条件,则受影响:
- 操作上包含
before_transaction钩子,且没有after_transaction钩子 - 该操作通过
Ash.bulk_*回调使用(AshJsonApi 和 AshGraphql 对 update/destroy 操作正是这样使用的)
影响程度取决于这些 before_transaction 回调的性质——它们是否具有副作用,或者只是执行某些操作(如查询外部数据),以及您的 API 端点是否经过身份验证及何种身份验证方式。
严重性
该漏洞的严重性难以评估。before_transaction 钩子并不常用。此外,攻击者必须知道哪些操作可供利用,经过身份验证才能发起此类请求(即极少数情况会有策略阻止匿名查询执行),因此需要权限和内部知识。另外,该操作始终返回 Forbidden 错误,因此不会泄露任何信息。我们将在未来几天根据情况评估并调整严重性等级。
目前标记为高危,因为我们不清楚用户在其 before_transaction 钩子中放置了什么逻辑,理论上可能造成严重后果。
临时解决方案
您应尽快更新。如果因故无法更新,可以在这些 before_transaction 钩子中添加逻辑,阻止其在不应执行时执行其逻辑。
参考资料
- GHSA-jj4j-x5ww-cwh9
- nvd.nist.gov/vuln/detail…
- ash-project/ash@5d1b6a5
漏洞指标
| 指标 | 分值/说明 |
|---|---|
| CVSS v4 基础分 | 7.1 / 10 (高危) |
| EPSS 评分 | 0.074% (第23百分位) |
| 弱点类型 | CWE-863 (不正确的授权) |
CVSS v4 基础指标
可利用性指标
- 攻击向量:网络
- 攻击复杂度:低
- 攻击要求:无
- 所需权限:低
- 用户交互:无
受影响系统影响指标
- 机密性:无
- 完整性:高
- 可用性:低
后续系统影响指标
- 机密性:无
- 完整性:无
- 可用性:无
受影响版本
- 受影响版本:≤ 3.5.38
- 修复版本:3.5.39
软件包
- Erlang:ash (Erlang) glyoVzOLZA9nMhz/bDHDAWzfRfZ0dSZtQUalpUyOmxcHWCcbjeeGk+yedIFbCPw7GOg3++U4eSaSJa8verq5CQ==