CVE-2026-43967 in absinthe信息

摘要

由 VulDB • 2026-05-09

absinthe-graphql absinthe 中存在低效算法复杂度漏洞,攻击者无需身份验证即可通过二次方复杂度的片段名称唯一性验证实现拒绝服务。

'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':run/2 遍历所有片段,并对每个片段调用 duplicate?/2,后者执行 Enum.count(fragments, &(&1.name == name)) —— 即对片段列表进行完整的线性扫描。结果导致每个文档产生 O(N²) 次比较,其中 N 是调用方提供的片段定义数量。

由于 input.fragments 直接由 GraphQL 查询体构建,N 完全由攻击者控制。一个最小尺寸的片段定义约为 16 字节,因此一个约 1 MB 的文档包含约 60,000 个片段,并强制在此单个验证阶段执行约 3.6 × 10⁹ 次比较。无需身份验证、模式知识或特殊配置。

此问题影响 absinthe:从 1.2.0 到 1.10.2 之前的版本。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Do you need the next level of professionalism?

Upgrade your account now!