CVE-2026-43967 json
Quadratic fragment-name uniqueness check causes denial of service in absinthe
published 2026-05-08 6 mo ago modified 2026-07-30 3 mo ago also EEF-CVE-2026-43967 , EUVD-2026-28800 , GHSA-9mhv-8h52-q7q2
- cvss
- 7.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 50%
- public exploits
- 0
- none known
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.
Patch / fix
- hex absinthe 1.10.2
- absinthe-graphql absinthe 1.10.2
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 6 mo ago
Exploit prediction
0.62% chance of exploitation in the next 30 days, higher than 50% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/absinthe-graphql/absinthe/security/advisories/GHSA-9mhv-8h52-q7q2 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.7 | 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 |
| CNA | 4.0 | 8.7 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | absinthe | >=1.2.0, <1.10.2 |
1.10.2 |
Affected products
- absinthe-graphql absinthe
Classification
- Weakness
-
- CWE-407 Inefficient Algorithmic Complexity
References
-
github.com
/absinthe-graphql/absinthe/commit/223600c520493dcaf95080af552c413099f92c9d
patch, web
-
cna.erlef.org
/cves/CVE-2026-43967.html
related, web, patch, third-party-advisory
-
github.com
/absinthe-graphql/absinthe/security/advisories/GHSA-9mhv-8h52-q7q2
vendor-advisory, related, web, exploit, advisory
-
osv.dev
/vulnerability/EEF-CVE-2026-43967
related, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-43967
advisory
-
github.com
/absinthe-graphql/absinthe
package
-
hex.pm
/packages/absinthe
package
Sources
- CVE List CVE-2026-43967
- GitHub Advisory GHSA-9mhv-8h52-q7q2
- NVD CVE-2026-43967
- OSV EEF-CVE-2026-43967
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.