graphql-php: Denial of Service via quadratic complexity in OverlappingFieldsCanBeMerged validation
graphql-go is a Go implementation of GraphQL. In versions 15.31.4 and below, the OverlappingFieldsCanBeMerged validation rule performs O(n²) pairwise comparisons of fields sharing the same response name. An attacker can send a query with thousands of repeated identical fields, causing excessive CPU usage during validation before execution begins. This is not mitigated by existing QueryDepth or QueryComplexity rules. This issue has been fixed in version 15.31.5.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-40476
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 18:29 UTC · Revision 1
Source evidence
graphql-php: Denial of Service via quadratic complexity in OverlappingFieldsCanBeMerged validation
core-osv · Original sourcePublished 17 Apr 2026, 21:42 UTC
graphql-go is a Go implementation of GraphQL. In versions 15.31.4 and below, the OverlappingFieldsCanBeMerged validation rule performs O(n²) pairwise comparisons of fields sharing the same response name. An attacker can send a query with thousands of repeated identical fields, causing excessive CPU usage during validation before execution begins. This is not mitigated by existing QueryDepth or QueryComplexity rules. This issue has been fixed in version 15.31.5.
osv:CVE-2026-40476
Complete source record
{
"id": "6f0368211566f1958fcddfc8c81e62d64d6f7f818831d0e68dc2db8636919309",
"url": "https://osv.dev/vulnerability/CVE-2026-40476",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "graphql-php: Denial of Service via quadratic complexity in OverlappingFieldsCanBeMerged validation",
"summary": "graphql-go is a Go implementation of GraphQL. In versions 15.31.4 and below, the OverlappingFieldsCanBeMerged validation rule performs O(n²) pairwise comparisons of fields sharing the same response name. An attacker can send a query with thousands of repeated identical fields, causing excessive CPU usage during validation before execution begins. This is not mitigated by existing QueryDepth or QueryComplexity rules. This issue has been fixed in version 15.31.5.",
"evidence": "osv:CVE-2026-40476",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-40476",
"aliases": [
"CVE-2026-40476",
"GHSA-68jq-c3rv-pcrr"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/webonyx/graphql-php",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "089c4ef7e112df85788cfe06596278a8f99f4aa9"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "15.31.5"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "089c4ef7e112df85788cfe06596278a8f99f4aa9"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v15.31.5"
},
{
"cpe": "cpe:2.3:a:webonyx:graphql-php:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "15.31.5"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v15.31.4",
"v15.31.3",
"v15.31.2",
"v15.31.1",
"v15.31.0",
"v15.30.2",
"v15.30.1",
"v15.30.0",
"v15.29.4",
"v15.29.3",
"v15.29.2",
"v15.29.1",
"v15.29.0",
"v15.28.0",
"v15.27.2",
"v15.27.1",
"v15.27.0",
"v15.26.0",
"v15.25.2",
"v15.25.1",
"v15.25.0",
"v15.24.0",
"v15.23.1",
"v15.23.0",
"v15.22.4",
"v15.22.3",
"v15.22.2",
"v15.22.1",
"v15.22.0",
"v15.21.3",
"v15.21.2",
"v15.21.1",
"v15.21.0",
"v15.20.1",
"v15.20.0",
"v15.19.1",
"v15.19.0",
"v15.18.1",
"v15.18.0",
"v15.17.0",
"v15.16.1",
"v15.16.0",
"v15.15.0",
"v15.14.3",
"v15.14.2",
"v15.14.1",
"v15.14.0",
"v15.13.0",
"v15.12.5",
"v15.12.4",
"v15.12.3",
"v15.12.2",
"v15.12.1",
"v15.12.0",
"v15.11.2",
"v15.11.1",
"v15.11.0",
"v15.10.0",
"v15.9.1",
"v15.9.0",
"v15.8.1",
"v15.8.0",
"v15.7.0",
"v15.6.3",
"v15.6.2",
"v15.6.1",
"v15.6.0",
"v15.5.3",
"v15.5.2",
"v15.5.1",
"v15.5.0",
"v15.4.0",
"v15.3.2",
"v15.3.1",
"v15.3.0",
"v15.2.5",
"v15.2.4",
"v15.2.3",
"v15.2.2",
"v15.2.1",
"v15.2.0",
"v15.1.0",
"v15.0.3",
"v15.0.2",
"v15.0.1",
"v15.0.0",
"v15.0.0-beta.1",
"v15.0.0-alpha.2",
"v15.0.0-alpha.1",
"v14.5.1",
"v14.5.0",
"v14.4.1",
"v14.4.0",
"v14.3.0",
"v14.2.0",
"v14.1.1",
"v14.1.0",
"v14.0.2",
"v14.0.1",
"v14.0.0",
"v0.13.0",
"v0.12.1",
"v0.12.0",
"v0.11.5",
"v0.11.4",
"v0.11.3",
"v0.11.2",
"v0.11.1",
"v0.11.0",
"v0.10.2",
"v0.10.1",
"v0.10.0",
"v0.10.0-rc1",
"v0.9.10",
"v0.9.9",
"v0.9.8",
"v0.9.7",
"v0.9.6",
"v0.9.5",
"v0.9.4",
"v0.9.3",
"v0.9.2",
"v0.9.1",
"v0.9.0",
"v0.8.0",
"v0.7.2",
"v0.7.1",
"v0.7.0",
"v0.6.4",
"v0.6.3",
"v0.6.2",
"v0.6.1",
"v0.6.0",
"v0.5.9",
"v0.5.8",
"v0.5.7",
"v0.5.6",
"v0.5.5",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5",
"v0.4",
"v0.3",
"v0.2",
"v0.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-40476.json"
}
}
],
"modified": "2026-10-28T02:30:38.336080399Z",
"provider": "osv",
"references": [
"https://github.com/webonyx/graphql-php/releases/tag/v15.31.5",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40476.json",
"https://github.com/webonyx/graphql-php/security/advisories/GHSA-68jq-c3rv-pcrr",
"https://nvd.nist.gov/vuln/detail/CVE-2026-40476"
],
"provider_metadata": {
"cwe_ids": [
"CWE-407"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40476.json"
}
},
"related_cves": [
{
"value": "CVE-2026-40476",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 505708,
"published_at": "2026-04-17T21:42:59.511+00:00"
}