GraphQL-core is a Python port of the GraphQL.js reference implementation. From 3.2.3 until 3.2.12 and 3.3.0rc1, the parser's max_tokens limit in Parser.advance_lexer counts only non-comment tokens returned after Lexer.lookahead skips comments. Each skipped comment is still allocated as a Token and retained through token.next and token.prev, allowing a highly compressible comment-padded GraphQL document to pass a low token limit while consuming memory. An unauthenticated remote attacker can exhaust worker memory before AST-based depth or complexity controls run. This issue is fixed in versions 3.2.12 and 3.3.0rc1.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-400",
"CWE-770"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/75xxx/CVE-2026-75508.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "3.2.3"
},
{
"fixed": "3.2.12"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "3.3.0a3"
},
{
"fixed": "3.3.0rc1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "437dea102e92fdf05a2971ca76787c5a5bad875a"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "80ef435a1808fbbcc4aaac63ae76771a1c91002d"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v3.2.12",
"range": [
{
"fixed": "af6addb1bf39e3b111ae7b805d774326a02f1079"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "v3.3.0rc1",
"range": [
{
"fixed": "2d72d39ce7107226b9bcd5cc47835a19da0c2c87"
}
],
"source": "REFERENCES_TAG"
}
]
}