EEF-CVE-2026-43967

Source
https://cna.erlef.org/osv/EEF-CVE-2026-43967.html
Import Source
https://cna.erlef.org/osv/EEF-CVE-2026-43967.json
JSON Data
https://api.osv.dev/v1/vulns/EEF-CVE-2026-43967
Aliases
Published
2026-05-08T15:42:34.347Z
Modified
2026-05-09T04:18:14.810Z
Severity
  • 8.7 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Quadratic fragment-name uniqueness check causes denial of service in absinthe
Details

Summary

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.

Database specific
{
    "capec_ids": [
        "CAPEC-229"
    ],
    "cpe_ids": [
        "cpe:2.3:a:absinthe-graphql:absinthe:*:*:*:*:*:*:*:*"
    ],
    "cwe_ids": [
        "CWE-407"
    ]
}
References
Credits
    • Peter Ullrich - FINDER
    • Curtis Schiewek - REMEDIATION_DEVELOPER

Affected packages

Hex / absinthe

Package

Name
absinthe
Purl
pkg:hex/absinthe

Affected ranges

Type
SEMVER
Events
Introduced
1.2.0
Fixed
1.10.2

Affected versions

1.*
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.3.0-beta.0
1.3.0-beta.1
1.3.0-beta.2
1.3.0-rc.0
1.3.0
1.3.1
1.3.2
1.4.0-beta.1
1.4.0-beta.2
1.4.0-beta.3
1.4.0-beta.4
1.4.0-beta.5
1.4.0-rc.0
1.4.0-rc.1
1.4.0-rc.2
1.4.0-rc.3
1.4.0
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8
1.4.9
1.4.10
1.4.11
1.4.12
1.4.13
1.4.14
1.4.15
1.4.16
1.5.0-alpha.0
1.5.0-alpha.1
1.5.0-alpha.2
1.5.0-alpha.3
1.5.0-alpha.4
1.5.0-beta.0
1.5.0-beta.1
1.5.0-beta.2
1.5.0-rc.0
1.5.0-rc.1
1.5.0-rc.2
1.5.0-rc.3
1.5.0-rc.4
1.5.0-rc.5
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.6.0-rc.0
1.6.0-rc.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
1.6.8
1.7.0
1.7.1
1.7.2
1.7.3
1.7.4
1.7.5
1.7.6
1.7.7
1.7.8
1.7.9
1.7.10
1.7.11
1.8.0
1.9.0
1.9.1
1.10.0
1.10.1

Database specific

source
"https://cna.erlef.org/osv/EEF-CVE-2026-43967.json"

Git / github.com/absinthe-graphql/absinthe

Affected ranges

Type
GIT
Repo
https://github.com/absinthe-graphql/absinthe
Events

Affected versions

1.*
1.4.0-beta.1
v1.*
v1.10.0
v1.10.1
v1.2.0
v1.2.1
v1.2.2
v1.2.3
v1.2.4
v1.2.6
v1.3.0
v1.3.1
v1.3.2
v1.4.0
v1.4.0-beta.1
v1.4.0-beta.2
v1.4.0-beta.3
v1.4.0-beta.4
v1.4.0-rc.0
v1.4.0-rc.1
v1.4.0-rc.2
v1.4.0-rc.3
v1.4.10
v1.4.2
v1.4.3
v1.4.4
v1.4.5
v1.4.6
v1.4.7
v1.5.0
v1.5.0-alpha.2
v1.5.0-alpha.4
v1.5.0-beta.2
v1.5.0-rc.0
v1.5.0-rc.1
v1.5.0-rc.2
v1.5.0-rc.3
v1.5.0-rc.4
v1.5.0-rc.5
v1.5.1
v1.5.2
v1.5.3
v1.5.4
v1.5.5
v1.6.0
v1.6.0-rc.0
v1.6.0-rc.1
v1.6.1
v1.6.2
v1.6.3
v1.6.4
v1.6.5
v1.6.6
v1.6.7
v1.6.8
v1.7.0
v1.7.1
v1.7.10
v1.7.11
v1.7.3
v1.7.4
v1.7.5
v1.7.6
v1.7.7
v1.7.8
v1.7.9
v1.8.0
v1.9.0

Database specific

source
"https://cna.erlef.org/osv/EEF-CVE-2026-43967.json"