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.
OpenCVE Enrichment