CVE-2026-34593Ash Framework 3.22.0之前的版本存在拒绝服务漏洞。由于Ash.Type.Module.cast_input/2函数会无条件将用户提供的以'Elixir.'开头的字符串转换为Erlang原子,而Erlang原子不会被垃圾回收且数量有限,攻击者可通过发送大量恶意请求耗尽BEAM虚拟机的原子表,导致应用程序崩溃。
该漏洞源于Ash Framework在处理模块类型输入时的逻辑缺陷。在受影响版本中,Ash.Type.Module.cast_input/2函数在验证模块是否存在之前,直接调用Module.concat([value])将任何以'Elixir.'开头的用户输入转换为Erlang原子。由于Erlang原子存储在全局原子表中,且该表大小默认限制约为104万条目,同时原子永不释放。攻击者无需认证即可向接受:module类型参数的资源或参数接口发送特制二进制字符串,快速填满原子表。一旦达到上限,BEAM VM将崩溃,导致整个应用拒绝服务。