Read the docs
TI-2026-29101 Aliases CVE-2026-40324GHSA-qr3m-xw4c-jqw3

Hot Chocolate's Utf8GraphQLParser has Stack Overflow via Deeply Nested GraphQL Documents

Priority MEDIUM 47CWE-674Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Denial of service
Confidentiality · integrity · availability
None · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-674.

Summary

Hot Chocolate is an open-source GraphQL server. Prior to versions 12.22.7, 13.9.16, 14.3.1, and 15.1.14, Hot Chocolate's recursive descent parser `Utf8GraphQLParser` has no recursion depth limit. A crafted GraphQL document with deeply nested selection sets, object values, list values, or list types can trigger a `StackOverflowException` on payloads as small as 40 KB. Because `StackOverflowException` is uncatchable in .NET (since .NET 2.0), the entire worker process is terminated immediately. All in-flight HTTP requests, background `IHostedService` tasks, and open WebSocket subscriptions on that worker are dropped. The orchestrator (Kubernetes, IIS, etc.) must restart the process. This occurs before any validation rules run — `MaxExecutionDepth`, complexity analyzers, persisted query allow-lists, and custom `IDocumentValidatorRule` implementations cannot intercept the crash because `Utf8GraphQLParser.Parse` is invoked before validation. The `MaxAllowedFields=2048` limit does not help because the crashing payloads contain very few fields. The fix in versions 12.22.7, 13.9.16, 14.3.1, and 15.1.14 adds a `MaxAllowedRecursionDepth` option to `ParserOptions` with a safe default, and enforces it across all recursive parser methods (`ParseSelectionSet`, `ParseValueLiteral`, `ParseObject`, `ParseList`, `ParseTypeReference`, etc.). When the limit is exceeded, a catchable `SyntaxException` is thrown instead of overflowing the stack. There is no application-level workaround. `StackOverflowException` cannot be caught in .NET. The only mitigation is to upgrade to a patched version. Operators can reduce (but not eliminate) risk by limiting HTTP request body size at the reverse proxy or load balancer layer, though the smallest crashing payload (40 KB) is well below most default body size limits and is highly compressible (~few hundred bytes via gzip).

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00902 59th percentileScored 2026-11-07
Fix Fixed graphql-platform (ChilliCream): 12.22.7, 13.9.16, 14.3.1 +1HotChocolate.Language (NuGet): 12.22.7, 13.9.16, 14.3.1 +1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ChilliCreamgraphql-platformbefore 12.22.7; 13.0.0 to before 13.9.16; 14.0.0 to before 14.3.1; 15.0.0 to before 15.1.1412.22.7, 13.9.16, 14.3.1, 15.1.14Patch availableCNA
—HotChocolate.Language (NuGet)before 12.22.712.22.7Patch availableGHSA-qr3m-xw4c-jqw3
—HotChocolate.Language (NuGet)13.0.0 to before 13.9.1613.9.16Patch availableGHSA-qr3m-xw4c-jqw3
—HotChocolate.Language (NuGet)14.0.0 to before 14.3.114.3.1Patch availableGHSA-qr3m-xw4c-jqw3
—HotChocolate.Language (NuGet)15.0.0 to before 15.1.1415.1.14Patch availableGHSA-qr3m-xw4c-jqw3
  • graphql-platform VendorChilliCream Affected before 12.22.7; 13.0.0 to before 13.9.16; 14.0.0 to before 14.3.1; 15.0.0 to before 15.1.14 Fixed in 12.22.7, 13.9.16, 14.3.1, 15.1.14 Patch available CNA
  • HotChocolate.Language (NuGet) Vendor— Affected before 12.22.7 Fixed in 12.22.7 Patch available GHSA-qr3m-xw4c-jqw3
  • HotChocolate.Language (NuGet) Vendor— Affected 13.0.0 to before 13.9.16 Fixed in 13.9.16 Patch available GHSA-qr3m-xw4c-jqw3
  • HotChocolate.Language (NuGet) Vendor— Affected 14.0.0 to before 14.3.1 Fixed in 14.3.1 Patch available GHSA-qr3m-xw4c-jqw3
  • HotChocolate.Language (NuGet) Vendor— Affected 15.0.0 to before 15.1.14 Fixed in 15.1.14 Patch available GHSA-qr3m-xw4c-jqw3

Remediation

  • Fix · CNA graphql-platform (ChilliCream) Fixed in 12.22.7, 13.9.16, 14.3.1, 15.1.14
  • Fix · GHSA-qr3m-xw4c-jqw3 HotChocolate.Language (NuGet) Fixed in 12.22.7 Advisory →
  • Fix · GHSA-qr3m-xw4c-jqw3 HotChocolate.Language (NuGet) Fixed in 13.9.16 Advisory →
  • Fix · GHSA-qr3m-xw4c-jqw3 HotChocolate.Language (NuGet) Fixed in 14.3.1 Advisory →
  • Fix · GHSA-qr3m-xw4c-jqw3 HotChocolate.Language (NuGet) Fixed in 15.1.14 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-40324
  2. 2026-10-03 Alias added: GHSA-qr3m-xw4c-jqw3

References

Sources