CVE-2026-75508: GraphQL-core denial of service via comment tokens in parser

CVE-2026-75508 · Severity: high · CVSS 7.5 · Published 2026-10-22

GraphQL-core is a library that parses GraphQL queries for web applications and APIs. A parser protection called max_tokens, intended to prevent denial of service attacks using oversized documents, failed to count comment tokens. An attacker can send a specially crafted query with many comments to exhaust a server's memory and cause it to crash, without needing any authentication.

Technologies: graphql-core (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-75508 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-75508 being exploited in the wild.
How severe is CVE-2026-75508?
High severity, with a CVSS score of 7.5, published 22 October 2026.
Which products and versions are affected?
Graphql-Core before 3.2.12 and 3.3.0rc1; graphql-core (PyPI) >= 3.2.3, < 3.2.12, ECOSYSTEM:introduced=3.2.3,fixed=3.2.12.
Is there a fix for CVE-2026-75508?
Yes. graphql-core (PyPI): upgrade to 3.2.12 or later. Until then: Apply a request body-size limit to the decompressed request body before the document reaches parse(), since the payload compresses extremely well and WAF inspection of compressed requests may not detect the amplified size. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-75508 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-75508?
Check whether you run Graphql-Core or graphql-core (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • graphql-core (PyPI): upgrade to 3.2.12 or later
    pip install "graphql-core>=3.2.12"

Apply a request body-size limit to the decompressed request body before the document reaches parse(), since the payload compresses extremely well and WAF inspection of compressed requests may not detect the amplified size.

Technical details

The Lexer.lookahead() method skips comment tokens but still allocates and chains them into a persistent token list, while Parser.advance_lexer() only increments the token counter for non-comment tokens. This allows an attacker to bypass the max_tokens limit by padding a GraphQL document with comments, allocating one Token object per comment. The fix counts all tokens including comments toward max_tokens.

Affected products

  • GraphQL graphql-core before 3.2.12 and 3.3.0rc1

Identifiers

  • CVE-2026-75508
  • GHSA-r77w-qph3-7vf8

Timeline

  • 2026-10-22: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.