Ash框架高危漏洞CVE-2025-48042:未经授权即可触发前置钩子

本文详细分析了Ash框架中的一个高危安全漏洞CVE-2025-48042。该漏洞允许恶意用户在请求被禁止授权的情况下,仍能执行特定的`before_transaction`钩子,可能导致敏感或高消耗操作被未授权触发。文章涵盖了漏洞摘要、影响范围、严重性评估及临时解决方案。

CVE-2025-48042:Ash框架授权前钩子执行漏洞分析

漏洞摘要

在特定场景下,即使请求因权限不足而被禁止,Ash框架中的某些批量操作调用仍会在检查授权并返回“禁止”错误之前,执行before_transaction钩子。

影响范围

此漏洞影响使用Erlang语言编写的Ash框架,受影响版本为<= 3.5.38。已修复版本为3.5.39。

漏洞详情

影响

恶意用户即使未被授权执行整个操作,也可能导致before_action钩子运行。该before_action可能执行敏感或高消耗的操作。

受影响条件

如果您使用的创建、更新或销毁操作满足以下条件,则可能受到影响:

  1. 该操作带有before_transaction钩子,且没有after_transaction钩子。
  2. 该操作通过Ash.bulk_*回调被使用(AshJsonApi和AshGraphql在更新/销毁操作中会这样做)。

严重性评估

当前标记为高危级别。其实际影响程度取决于before_transaction回调的性质(例如是否具有副作用、是否查询外部数据)以及API端点所处的认证环境。 评估难度在于:before_transaction钩子并不常用;攻击者需要了解可用的目标、并经过认证才能发起此类请求;且操作始终会返回禁止错误,不会泄露信息。

CVSS v4总体评分为7.1(高分)。

临时解决方案

建议尽快更新到修复版本。如果无法立即更新,可以向相关的before_transaction钩子中添加逻辑,防止其在不应运行时执行操作。

参考信息

漏洞弱点分类

  • CWE-ID: CWE-863 - 不正确的授权

元数据

  • 发布日期: 2025年9月6日
  • 最后更新: 2025年9月15日
  • 漏洞发现者: zachdaniel (修复开发者), maennchen (分析师)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计