CVE-2026-40324: ChilliCream GraphQL Platform Utf8GraphQLParser Stack Overflow Vulnerability

CRITICAL
Advisory Identifier: GHSA-qr3m-xw4c-jqw3
CVSS 9.1
CWE-674
Published
Advisory Summary

CVE-2026-40324 is a CRITICAL (CVSS 9.1) utf8graphqlparser stack overflow vulnerability (CWE-674: Uncontrolled Recursion) affecting ChilliCream GraphQL Platform libraries in the NuGet ecosystem. The issue involves utf8graphqlparser stack overflow via deeply nested graphql documents. Remediation is available by upgrading affected packages to version 12.22.7, 13.9.16, 14.3.1, 15.1.14.

CVE-2026-40324 at a Glance

CVE Identifier CVE-2026-40324
GHSA Identifier GHSA-qr3m-xw4c-jqw3
Severity CRITICAL
CVSS v3.1 Base Score 9.1
CWE Classification CWE-674: Uncontrolled Recursion
Affected Product ChilliCream GraphQL Platform
Package Ecosystem NuGet
Published Date
Last Updated

Security Impact

CVSS: 9.1

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality None (C:N)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2026-40324

To remediate this vulnerability, upgrade all affected ChilliCream GraphQL Platform dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

HotChocolate.Language fixed: 12.22.7
Upgrade HotChocolate.Language to 12.22.7
HotChocolate.Language fixed: 13.9.16
Upgrade HotChocolate.Language to 13.9.16
HotChocolate.Language fixed: 14.3.1
Upgrade HotChocolate.Language to 14.3.1
HotChocolate.Language fixed: 15.1.14
Upgrade HotChocolate.Language to 15.1.14
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for HotChocolate.Language

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-40324, inspect your project dependencies for ChilliCream GraphQL Platform:

inspect dependencies for HotChocolate.Language

Analyze the terminal output to locate any version of ChilliCream GraphQL Platform in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 12.22.7), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-674: Uncontrolled Recursion, where the product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack. In ChilliCream GraphQL Platform, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact Hot Chocolate's `Utf8GraphQLParser` is a recursive descent parser with 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 existing `MaxAllowedFields=2048` limit does not help because the crashing payloads contain very few fields. **Severity:** Critical (9.1) — `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H` ### Patches - **v12 line:** Fixed in `12.22.7` - **v13 line:** Fixed in `13.9.16` - **v14 line:** Fixed in `14.3.1` - **v15 line:** Fixed in `15.1.14` The fix 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. ### Workarounds 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). ### References - Fix for v15: https://github.com/ChilliCream/graphql-platform/pull/9528

CVE-2026-40324 Affected ChilliCream GraphQL Platform Versions

4 component(s)
Fixed Versions:
12.22.713.9.1614.3.115.1.14
Product / Package Ecosystem Affected Versions Fixed Version
HotChocolate.Language
NuGet
< 12.22.7
12.22.7
HotChocolate.Language
NuGet
≥ 13.0.0
< 13.9.16
13.9.16
HotChocolate.Language
NuGet
≥ 14.0.0
< 14.3.1
14.3.1
HotChocolate.Language
NuGet
≥ 15.0.0
< 15.1.14
15.1.14

References

ChilliCream GraphQL Platform Release RELEASE
https://github.com/ChilliCream/graphql-platform/releases/tag/14.3.1
GitHub Advisory / Wiki ADVISORY
https://github.com/ChilliCream/graphql-platform/security/advisories/GHSA-qr3m-xw4c-jqw3
NVD — CVE-2026-40324 NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-40324
ChilliCream GraphQL Platform Source Repository REPOSITORY
https://github.com/ChilliCream/graphql-platform/pull/9528
ChilliCream GraphQL Platform Source Repository REPOSITORY
https://github.com/ChilliCream/graphql-platform/pull/9530
ChilliCream GraphQL Platform Source Repository REPOSITORY
https://github.com/ChilliCream/graphql-platform/pull/9531
Security Fix Commit FIX COMMIT
https://github.com/ChilliCream/graphql-platform/commit/08c0caa42ca33c121bbed49d2db892e5bf6fb541
Security Fix Commit FIX COMMIT
https://github.com/ChilliCream/graphql-platform/commit/4cbaf67d366f800fc1e484bc5c06dfcf27b45023
Security Fix Commit FIX COMMIT
https://github.com/ChilliCream/graphql-platform/commit/b185eb276c9ee227bd44616ff113be7f01a66c69
Security Fix Commit FIX COMMIT
https://github.com/ChilliCream/graphql-platform/commit/b9271e6a500484c002fd528dcd34d1a9b445480f
ChilliCream GraphQL Platform Source Repository REPOSITORY
https://github.com/ChilliCream/graphql-platform
ChilliCream GraphQL Platform Release RELEASE
https://github.com/ChilliCream/graphql-platform/releases/tag/12.22.7
ChilliCream GraphQL Platform Release RELEASE
https://github.com/ChilliCream/graphql-platform/releases/tag/13.9.16
ChilliCream GraphQL Platform Release RELEASE
https://github.com/ChilliCream/graphql-platform/releases/tag/15.1.14

Frequently Asked Questions

What is CVE-2026-40324?
CVE-2026-40324 is a security vulnerability in ChilliCream GraphQL Platform involving Utf8GraphQLParser Stack Overflow via Deeply Nested GraphQL Documents under CWE-674: Uncontrolled Recursion.
Which ChilliCream GraphQL Platform versions are affected?
Affected versions include releases prior to 12.22.7, 13.9.16, 14.3.1, 15.1.14 across affected packages: HotChocolate.Language.
What version fixes CVE-2026-40324?
Upgrading to 12.22.7, 13.9.16, 14.3.1, 15.1.14 (or the latest patched release for your respective branch) resolves the vulnerability.
Is HotChocolate.Language affected?
Yes, HotChocolate.Language is affected in releases prior to 12.22.7, 13.9.16, 14.3.1, 15.1.14. Upgrade your dependency to 12.22.7, 13.9.16, 14.3.1, 15.1.14 or later.
What is the CVSS score of CVE-2026-40324?
CVE-2026-40324 has a CVSS v3.1 base score of 9.1 (CRITICAL) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H.
What CWE is associated with CVE-2026-40324?
CVE-2026-40324 is classified under CWE-674: Uncontrolled Recursion (The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.).
How can I check NuGet dependencies for CVE-2026-40324?
Run the dependency tree command: 'inspect dependencies for HotChocolate.Language'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-qr3m-xw4c-jqw3",
  "modified" : "2026-04-24T20:51:04Z",
  "published" : "2026-04-16T21:09:40Z",
  "aliases" : [ "CVE-2026-40324" ],
  "summary" : "ChilliCream GraphQL Platform: Utf8GraphQLParser Stack Overflow via Deeply Nested GraphQL Documents",
  "details" : "### Impact\n\nHot Chocolate's `Utf8GraphQLParser` is a recursive descent parser with 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**.\n\nBecause `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.\n\nThis 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 existing `MaxAllowedFields=2048` limit does not help because the crashing payloads contain very few fields.\n\n**Severity:** Critical (9.1) — `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H`\n\n### Patches\n\n- **v12 line:** Fixed in `12.22.7`\n- **v13 line:** Fixed in `13.9.16`\n- **v14 line:** Fixed in `14.3.1`\n- **v15 line:** Fixed in `15.1.14`\n\nThe fix 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.\n\n### Workarounds\n\nThere is no application-level workaround. `StackOverflowException` cannot be caught in .NET. The only mitigation is to upgrade to a patched version.\n\nOperators 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).\n\n### References\n\n- Fix for v15: https://github.com/ChilliCream/graphql-platform/pull/9528",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "HotChocolate.Language"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "12.22.7"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "HotChocolate.Language"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "13.0.0"
      }, {
        "fixed" : "13.9.16"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "HotChocolate.Language"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "14.0.0"
      }, {
        "fixed" : "14.3.1"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "HotChocolate.Language"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "15.0.0"
      }, {
        "fixed" : "15.1.14"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/security/advisories/GHSA-qr3m-xw4c-jqw3"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-40324"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/pull/9528"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/pull/9530"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/pull/9531"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/commit/08c0caa42ca33c121bbed49d2db892e5bf6fb541"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/commit/4cbaf67d366f800fc1e484bc5c06dfcf27b45023"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/commit/b185eb276c9ee227bd44616ff113be7f01a66c69"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/commit/b9271e6a500484c002fd528dcd34d1a9b445480f"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/ChilliCream/graphql-platform"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/releases/tag/12.22.7"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/releases/tag/13.9.16"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/releases/tag/14.3.1"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/ChilliCream/graphql-platform/releases/tag/15.1.14"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-674" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-04-16T21:09:40Z",
    "nvd_published_at" : "2026-04-18T00:16:36Z"
  }
}