Description
GraphQL-core is a Python port of the GraphQL.js reference implementation. From 3.3.0a3 until 3.3.1, validate() reuses a module-level ValidationAbortedError when a document exceeds max_errors. Python appends frames to the reused exception's traceback on every raise, retaining each document, validation context, and error set for the process lifetime. An unauthenticated client can repeatedly submit a small document with more than 100 validation errors to cause unbounded memory growth before query execution, eventually exhausting worker memory without disclosing or modifying data. This issue is fixed in version 3.3.1.
Published: 2026-10-29
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The flaw arises because validate() reuses a single ValidationAbortedError object when a document exceeds the allowed error count. Each raise appends a new frame to the exception’s traceback, preserving the entire document, validation context, and error list for the lifetime of the process. An attacker who can submit requests to the GraphQL server can repeatedly send small documents that generate over 100 validation errors. This causes unbounded memory allocation until the worker process runs out of RAM, halting query execution and ultimately causing a denial of service. The vulnerability does not disclose or modify data; its effect is limited to exhausting memory resources.

Affected Systems

The vulnerability exists in the graphql-python:graphql-core library in releases from 3.3.0a3 up to but not including 3.3.1. Systems that depend on these versions of the GraphQL-core Python package are affected. All deployments that use Python GraphQL servers which import or call validate() with documents that can exceed the error threshold are at risk.

Risk and Exploitability

The CVSS score of 7.5 reflects a moderate to high severity, and the EPSS score is not available, meaning the current exploitation likelihood data is unknown. The issue is not listed in the CISA KEV catalog, suggesting no widespread, publicly disclosed exploitation is reported yet. The attack vector is inferred to be remote, as any client that can reach the GraphQL endpoint can craft and submit the malicious documents. No authentication is required, so the vulnerability can be triggered by public users. Once the memory usage grows beyond a critical threshold, the worker process may crash or become unresponsive, leading to service disruption.

Generated by OpenCVE AI on October 29, 2026 at 22:41 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade graphql-core to version 3.3.1 or later.
  • If an upgrade is not possible, configure the library to reduce the maximum number of allowable validation errors (e.g., set the max_errors parameter to a lower value) to limit the size of the traceback stored.
  • Add rate limiting or request throttling on the GraphQL endpoint to prevent repeated document submissions that could trigger the memory leak.

Generated by OpenCVE AI on October 29, 2026 at 22:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 29 Oct 2026 22:30:00 +0000

Type Values Removed Values Added
First Time appeared Graphql-python
Graphql-python graphql-core
Vendors & Products Graphql-python
Graphql-python graphql-core

Thu, 29 Oct 2026 21:45:00 +0000

Type Values Removed Values Added
Description GraphQL-core is a Python port of the GraphQL.js reference implementation. From 3.3.0a3 until 3.3.1, validate() reuses a module-level ValidationAbortedError when a document exceeds max_errors. Python appends frames to the reused exception's traceback on every raise, retaining each document, validation context, and error set for the process lifetime. An unauthenticated client can repeatedly submit a small document with more than 100 validation errors to cause unbounded memory growth before query execution, eventually exhausting worker memory without disclosing or modifying data. This issue is fixed in version 3.3.1.
Title GraphQL-core: Denial of service via memory leak in aborted validations
Weaknesses CWE-400
CWE-401
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Graphql-python Graphql-core
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-29T21:38:43.633Z

Reserved: 2026-10-29T18:50:28.065Z

Link: CVE-2026-119286

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-29T22:17:01.517

Modified: 2026-10-29T22:17:01.517

Link: CVE-2026-119286

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T22:45:03Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-401

    Missing Release of Memory after Effective Lifetime