Vulnerability Details CVE-2026-43967
Inefficient Algorithmic Complexity vulnerability in absinthe-graphql absinthe allows unauthenticated denial of service via quadratic fragment-name uniqueness validation.
'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':run/2 iterates over all fragments and for each one calls duplicate?/2, which evaluates Enum.count(fragments, &(&1.name == name)) — a full linear scan of the fragment list. The result is O(N²) comparisons per document, where N is the number of fragment definitions supplied by the caller.
Because input.fragments is built directly from the GraphQL query body, N is fully attacker-controlled. A minimum-size fragment definition is roughly 16 bytes, so a ~1 MB document carries ~60,000 fragments and forces ~3.6 × 10⁹ comparisons inside this single validation phase. No authentication, schema knowledge, or special configuration is required.
This issue affects absinthe: from 1.2.0 before 1.10.2.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.001
EPSS Ranking 24.0%
CVSS Severity
CVSS v3 Score 7.5
Products affected by CVE-2026-43967
-
cpe:2.3:a:absinthe-graphql:absinthe:1.10.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.10.1
-
cpe:2.3:a:absinthe-graphql:absinthe:1.2.1
-
cpe:2.3:a:absinthe-graphql:absinthe:1.2.2
-
cpe:2.3:a:absinthe-graphql:absinthe:1.2.3
-
cpe:2.3:a:absinthe-graphql:absinthe:1.2.4
-
cpe:2.3:a:absinthe-graphql:absinthe:1.2.5
-
cpe:2.3:a:absinthe-graphql:absinthe:1.2.6
-
cpe:2.3:a:absinthe-graphql:absinthe:1.3.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.3.1
-
cpe:2.3:a:absinthe-graphql:absinthe:1.3.2
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.10
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.11
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.12
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.13
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.14
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.16
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.2
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.3
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.4
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.5
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.6
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.7
-
cpe:2.3:a:absinthe-graphql:absinthe:1.4.9
-
cpe:2.3:a:absinthe-graphql:absinthe:1.5.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.5.1
-
cpe:2.3:a:absinthe-graphql:absinthe:1.5.2
-
cpe:2.3:a:absinthe-graphql:absinthe:1.5.3
-
cpe:2.3:a:absinthe-graphql:absinthe:1.5.4
-
cpe:2.3:a:absinthe-graphql:absinthe:1.5.5
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.1
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.2
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.3
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.4
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.5
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.6
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.7
-
cpe:2.3:a:absinthe-graphql:absinthe:1.6.8
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.1
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.10
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.11
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.2
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.3
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.4
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.5
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.6
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.7
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.8
-
cpe:2.3:a:absinthe-graphql:absinthe:1.7.9
-
cpe:2.3:a:absinthe-graphql:absinthe:1.8.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.9.0
-
cpe:2.3:a:absinthe-graphql:absinthe:1.9.1