Quadratic fragment-name uniqueness check causes denial of service in absinthe
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| absinthe-graphql | absinthe | unaffected |
|
||||||
| absinthe-graphql | absinthe | unaffected |
|
No data.
| Vendor | Product | Versions | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Absinthe-graphql | Absinthe |
|
||||||||||||
| Absinthe-graphql | Absinthe |
|
||||||||||||
| Absinthe-graphql | Absinthe |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-9mhv-8h52-q7q2 | Absinthe: Quadratic fragment-name uniqueness check |
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.624% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
cvssV3_1
|
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | Quadratic fragment-name uniqueness check causes denial of service in absinthe | |
| First Time appeared |
Absinthe-graphql
Absinthe-graphql absinthe |
|
| Weaknesses | CWE-407 | |
| CPEs | cpe:2.3:a:absinthe-graphql:absinthe:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Absinthe-graphql
Absinthe-graphql absinthe |
|
| References |
| |
| Metrics |
cvssV4_0
|