CVE-2025-48042:Ash框架中的授权绕过漏洞
摘要
在特定情况下,即使请求被禁止,Ash框架的钩子仍可能执行。
漏洞详情
该漏洞影响了Erlang包中的ash框架。受影响的版本为小于等于3.5.38的版本,已修复的版本为3.5.39。
描述
漏洞概述
某些带有before_transaction钩子但没有after_transaction钩子的批量操作调用,在作为批量操作调用时,会在授权检查之前调用before_transaction钩子,然后返回“禁止”错误。
影响
恶意用户可能导致before_transaction钩子运行,即使他们无权执行整个操作。该before_action钩子可能运行敏感/昂贵的操作。
如果您具有满足以下条件的创建、更新或销毁操作,则会受到影响:
- 该操作上有一个
before_transaction钩子,并且没有after_transaction钩子。 - 正在通过
Ash.bulk_*回调使用该操作(AshJsonApi和AshGraphql为更新/销毁操作执行此操作)。
是否产生影响或影响程度取决于这些before_transaction回调的性质。如果这些before_transaction回调具有副作用,或者只是执行诸如查找某些外部数据的操作。此外,还取决于您的API端点是否位于身份验证之后以及采用何种身份验证方式。
严重性
此漏洞的严重性难以评估。before_transaction钩子并不常用。此外,任何攻击者必须知道哪些功能对他们可用,并且经过身份验证才能发出此类请求(即,您很少有针对匿名查询运行设置阻止策略),因此需要权限和内部知识。此外,该操作将始终返回禁止错误,因此不会泄露任何信息。我们将在未来几天内根据需要评估并调整严重性级别。
鉴于我们确实不了解用户在其before_transaction钩子中放置了何种逻辑,并且理论上可能非常糟糕,目前将其标记为高风险。
变通方案
您应尽快更新,但如果因故无法更新,可以向这些before_transaction钩子添加逻辑,以防止它们在应该执行之前执行其逻辑。
参考信息
- GHSA-jj4j-x5ww-cwh9
- https://nvd.nist.gov/vuln/detail/CVE-2025-48042
- ash-project/ash@5d1b6a5
安全评分
严重性:高风险 CVSS总体评分:7.1 / 10
CVSS v4 基础指标
可利用性指标
- 攻击向量:网络
- 攻击复杂度:低
- 攻击要求:无
- 所需权限:低
- 用户交互:无
脆弱系统影响指标
- 保密性影响:无
- 完整性影响:高
- 可用性影响:低
后续系统影响指标
- 保密性影响:无
- 完整性影响:无
- 可用性影响:无
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
EPSS 评分
0.058% (第18百分位) 此分数估计了该漏洞在未来30天内被利用的概率。数据由FIRST提供。
缺陷关联
弱点:CWE-863 - 不正确的授权 产品在参与者尝试访问资源或执行操作时执行授权检查,但未能正确执行检查。这允许攻击者绕过预期的访问限制。在MITRE上了解更多信息。
标识符
- CVE ID: CVE-2025-48042
- GHSA ID: GHSA-jj4j-x5ww-cwh9
源代码仓库: ash-project/ash
致谢
- zachdaniel - 修复开发者
- maennchen - 分析师
发布日期: 2025年9月6日,在 ash-project/ash 更新日期: 2025年9月15日