CVE-2025-48042:Ash框架授权前钩子执行漏洞分析
漏洞摘要
在特定场景下,即使请求因权限不足而被禁止,Ash框架中的某些批量操作调用仍会在检查授权并返回“禁止”错误之前,执行before_transaction钩子。
影响范围
此漏洞影响使用Erlang语言编写的Ash框架,受影响版本为<= 3.5.38。已修复版本为3.5.39。
漏洞详情
影响
恶意用户即使未被授权执行整个操作,也可能导致before_action钩子运行。该before_action可能执行敏感或高消耗的操作。
受影响条件
如果您使用的创建、更新或销毁操作满足以下条件,则可能受到影响:
- 该操作带有
before_transaction钩子,且没有after_transaction钩子。 - 该操作通过
Ash.bulk_*回调被使用(AshJsonApi和AshGraphql在更新/销毁操作中会这样做)。
严重性评估
当前标记为高危级别。其实际影响程度取决于before_transaction回调的性质(例如是否具有副作用、是否查询外部数据)以及API端点所处的认证环境。
评估难度在于:before_transaction钩子并不常用;攻击者需要了解可用的目标、并经过认证才能发起此类请求;且操作始终会返回禁止错误,不会泄露信息。
CVSS v4总体评分为7.1(高分)。
临时解决方案
建议尽快更新到修复版本。如果无法立即更新,可以向相关的before_transaction钩子中添加逻辑,防止其在不应运行时执行操作。
参考信息
- GHSA ID: GHSA-jj4j-x5ww-cwh9
- NVD详情: https://nvd.nist.gov/vuln/detail/CVE-2025-48042
- 修复提交: ash-project/ash@5d1b6a5
漏洞弱点分类
- CWE-ID: CWE-863 - 不正确的授权
元数据
- 发布日期: 2025年9月6日
- 最后更新: 2025年9月15日
- 漏洞发现者: zachdaniel (修复开发者), maennchen (分析师)