Files
vuln-cve/data/2026/43xxx/CVE-2026-43967.json
T

255 lines
12 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-43967",
"assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"state": "PUBLISHED",
"assignerShortName": "EEF",
"dateReserved": "2026-05-04T18:23:25.573Z",
"datePublished": "2026-05-08T15:42:34.347Z",
"dateUpdated": "2026-05-09T04:18:14.810Z"
},
"containers": {
"cna": {
"affected": [
{
"collectionURL": "https://repo.hex.pm",
"cpes": [
"cpe:2.3:a:absinthe-graphql:absinthe:*:*:*:*:*:*:*:*"
],
"defaultStatus": "unaffected",
"modules": [
"'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames'"
],
"packageName": "absinthe",
"packageURL": "pkg:hex/absinthe",
"product": "absinthe",
"programFiles": [
"lib/absinthe/phase/document/validation/unique_fragment_names.ex"
],
"programRoutines": [
{
"name": "'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':run/2"
},
{
"name": "'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':duplicate?/2"
}
],
"repo": "https://github.com/absinthe-graphql/absinthe",
"vendor": "absinthe-graphql",
"versions": [
{
"lessThan": "1.10.2",
"status": "affected",
"version": "1.2.0",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://github.com",
"cpes": [
"cpe:2.3:a:absinthe-graphql:absinthe:*:*:*:*:*:*:*:*"
],
"defaultStatus": "unaffected",
"modules": [
"'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames'"
],
"packageName": "absinthe-graphql/absinthe",
"packageURL": "pkg:github/absinthe-graphql/absinthe",
"product": "absinthe",
"programFiles": [
"lib/absinthe/phase/document/validation/unique_fragment_names.ex"
],
"programRoutines": [
{
"name": "'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':run/2"
},
{
"name": "'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':duplicate?/2"
}
],
"repo": "https://github.com/absinthe-graphql/absinthe",
"vendor": "absinthe-graphql",
"versions": [
{
"lessThan": "223600c520493dcaf95080af552c413099f92c9d",
"status": "affected",
"version": "0b46e3bcc06c0d3797bacd64761b908a84646c1d",
"versionType": "git"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:absinthe-graphql:absinthe:*:*:*:*:*:*:*:*",
"versionEndExcluding": "1.10.2",
"versionStartIncluding": "1.2.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
],
"operator": "AND"
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Peter Ullrich"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Curtis Schiewek"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "Inefficient Algorithmic Complexity vulnerability in absinthe-graphql absinthe allows unauthenticated denial of service via quadratic fragment-name uniqueness validation.<p><tt>'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':run/2</tt> iterates over all fragments and for each one calls <tt>duplicate?/2</tt>, which evaluates <tt>Enum.count(fragments, &amp;(&amp;1.name == name))</tt> — 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.</p><p>Because <tt>input.fragments</tt> 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.</p><p>This issue affects absinthe: from 1.2.0 before 1.10.2.</p>"
}
],
"value": "Inefficient Algorithmic Complexity vulnerability in absinthe-graphql absinthe allows unauthenticated denial of service via quadratic fragment-name uniqueness validation.\n\n'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.\n\nBecause 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.\n\nThis issue affects absinthe: from 1.2.0 before 1.10.2."
}
],
"impacts": [
{
"capecId": "CAPEC-229",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-229 Serialized Data Parameter Blowup"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 8.7,
"baseSeverity": "HIGH",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "HIGH",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "NONE"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-407",
"description": "CWE-407 Inefficient Algorithmic Complexity",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"shortName": "EEF",
"dateUpdated": "2026-05-09T04:18:14.810Z"
},
"references": [
{
"tags": [
"vendor-advisory",
"related"
],
"url": "https://github.com/absinthe-graphql/absinthe/security/advisories/GHSA-9mhv-8h52-q7q2"
},
{
"tags": [
"related"
],
"url": "https://cna.erlef.org/cves/CVE-2026-43967.html"
},
{
"tags": [
"related"
],
"url": "https://osv.dev/vulnerability/EEF-CVE-2026-43967"
},
{
"tags": [
"patch"
],
"url": "https://github.com/absinthe-graphql/absinthe/commit/223600c520493dcaf95080af552c413099f92c9d"
}
],
"source": {
"discovery": "EXTERNAL"
},
"title": "Quadratic fragment-name uniqueness check causes denial of service in absinthe",
"x_generator": {
"engine": "cvelib 1.8.0"
}
},
"adp": [
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"timestamp": "2026-05-08T16:07:01.053904Z",
"id": "CVE-2026-43967",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2026-05-08T16:07:10.322Z"
}
}
]
}
}