Description
Strawberry GraphQL is a library for creating GraphQL APIs. From 0.312.3 until 0.327.2, the legacy graphql-ws subscription handler in strawberry/subscriptions/protocols/graphql_ws/handlers.py does not remove naturally completed operations from self.tasks and self.subscriptions. When max_subscriptions_per_connection is configured, a client on a persistent WebSocket connection can use distinct operation IDs for one-shot subscriptions to fill the connection's configured slots even after those subscriptions send complete, causing later legitimate operations on that connection to be rejected with Subscription limit reached. The modern graphql-transport-ws protocol and deployments without the configured per-connection cap are not affected. This issue is fixed in version 0.327.2.
Published: 2026-10-08
Score: 3.7 Low
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service due to subscription limit exhaustion
Action: Apply Patch
AI Analysis

Impact

The vulnerability resides in the legacy graphql‑ws subscription handler of the Strawberry GraphQL library. Versions 0.312.3 through 0.327.1 fail to clear completed subscription entries from internal tracking structures. When a client connects over a persistent WebSocket and performs one‑shot subscriptions using distinct operation identifiers, these entries occupy the configured maximum subscription slots even after the subscriptions have terminated. As a result, further legitimate subscription requests are rejected with a “Subscription limit reached” error, effectively denying service to otherwise valid clients. This problem is a classic example of uncontrolled resource consumption (CWE‑400) and limits fulfillment of the API contract.

Affected Systems

Affected systems are installations of the strawberry‑graphql Python library version 0.312.3 up to 0.327.1 that use the legacy graphql‑ws protocol. The modern graphql‑transport‑ws protocol and any deployments that do not impose a per‑connection subscription cap are not impacted by this issue.

Risk and Exploitability

CVSS score of 3.7 indicates low to moderate severity. Explorers can easily trigger the condition by maintaining a client connection and repeatedly deploying unique subscription operations until the configured slot count is exhausted. Because the attack surface exists on the application layer and requires only WebSocket activity, the likelihood of exploitation is high for targeted services that rely on legacy subscription handling with subscription limits enabled. The vulnerability is not currently listed in the CISA catalog of known exploited vulnerabilities, and no EPSS score is reported, but the scenario outlined makes it a practical denial‑of‑service risk for exposed APIs. Upgrading to 0.327.2 or later removes this risk.

Generated by OpenCVE AI on October 9, 2026 at 01:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade strawberry‑graphql to version 0.327.2 or later to resolve the resource‑leak bug.
  • If an immediate upgrade is not possible, configure the server to use the modern graphql‑transport‑ws protocol instead of the legacy graphql‑ws handler and ensure that no per‑connection subscription cap is enforced.
  • Verify that no legacy graphql‑ws endpoints remain exposed; remove or disable any fallback that might invoke the vulnerable handler.

Generated by OpenCVE AI on October 9, 2026 at 01:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-m952-2w3f-6r8h Strawberry legacy graphql-ws retains naturally completed subscription slots
History

Tue, 13 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sun, 11 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
First Time appeared Strawberry
Strawberry strawberry
Vendors & Products Strawberry
Strawberry strawberry

Fri, 09 Oct 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-772
References
Metrics threat_severity

None

threat_severity

Low


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

Type Values Removed Values Added
Description Strawberry GraphQL is a library for creating GraphQL APIs. From 0.312.3 until 0.327.2, the legacy graphql-ws subscription handler in strawberry/subscriptions/protocols/graphql_ws/handlers.py does not remove naturally completed operations from self.tasks and self.subscriptions. When max_subscriptions_per_connection is configured, a client on a persistent WebSocket connection can use distinct operation IDs for one-shot subscriptions to fill the connection's configured slots even after those subscriptions send complete, causing later legitimate operations on that connection to be rejected with Subscription limit reached. The modern graphql-transport-ws protocol and deployments without the configured per-connection cap are not affected. This issue is fixed in version 0.327.2.
Title Strawberry legacy graphql-ws retains naturally completed subscription slots
Weaknesses CWE-400
References
Metrics cvssV3_1

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


Subscriptions

Strawberry Strawberry
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-13T16:27:25.353Z

Reserved: 2026-10-08T17:21:52.976Z

Link: CVE-2026-107727

cve-icon Vulnrichment

Updated: 2026-10-13T16:27:20.957Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-08T23:16:58.010

Modified: 2026-10-13T17:17:17.093

Link: CVE-2026-107727

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-08T22:11:12Z

Links: CVE-2026-107727 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-11T12:15:18Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-772

    Missing Release of Resource after Effective Lifetime