---
id: "CVE-2026-119286"
kind: "vulnerability"
aliases: ["CVE-2026-119286"]
title: "graphql-core: validation error reuse leaks memory, can exhaust server workers"
severity: "high"
cvss: 7.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["graphql", "graphql-core", "package", "python"]
not_affected_if: ["auth-required", "internal-only"]
published_at: "2026-10-29T22:17:01+00:00"
first_seen_at: "2026-10-29T22:27:06+00:00"
updated_at: "2026-10-29T22:28:42+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-119286", "first_seen_at": "2026-10-29T22:27:06+00:00"}]
---

# graphql-core: validation error reuse leaks memory, can exhaust server workers

graphql-core, a Python GraphQL library, keeps a shared validation error object that grows its traceback on every oversized document, so memory is never released. An unauthenticated client sending small invalid queries can drive memory use up until the worker process is exhausted, causing denial of service.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version with `pip show graphql-core` and look for versions from `3.3.0a3` up to but not including `3.3.1`.
- Search lock files (`poetry.lock`, `requirements.txt`, `uv.lock`) for `graphql-core` pinned to those versions.
- Confirm whether a Python service using it accepts queries from untrusted clients.

## Fix

- `graphql-core` `3.3.1`

## Timeline

- 2026-10-29T22:27:06+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-119286

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
