FreeBSD VuXML: Documenting security issues in FreeBSD and the FreeBSD Ports Collection

py-strawberry-graphql -- Multiple vulnerabilities

Affected packages
py310-strawberry-graphql < 0.312.3
py311-strawberry-graphql < 0.312.3
py312-strawberry-graphql < 0.312.3
py313-strawberry-graphql < 0.312.3
py313t-strawberry-graphql < 0.312.3
py314-strawberry-graphql < 0.312.3
py310-dj52-strawberry-graphql < 0.312.3
py311-dj52-strawberry-graphql < 0.312.3
py312-dj52-strawberry-graphql < 0.312.3
py313-dj52-strawberry-graphql < 0.312.3
py313t-dj52-strawberry-graphql < 0.312.3
py314-dj52-strawberry-graphql < 0.312.3

Details

VuXML ID 6a0aa20d-399f-11f1-8626-901b0edee044
Discovery 2026-04-04
Entry 2026-04-17

The Strawberry GraphQL project reports:

Strawberry up until version 0.312.3 is vulnerable to an authentication bypass on WebSocket subscription endpoints. The legacy graphql-ws subprotocol handler does not verify that a 'connection_init' handshake has been completed before processing start (subscription) messages. This allows a remote attacker to skip the 'on_ws_connect' authentication hook entirely by connecting with the graphql-ws subprotocol and sending a start message directly, without ever sending 'connection_init'. The graphql-transport-ws subprotocol handler is not affected, as it correctly gates subscription operations on a connection_acknowledged flag. However, both subprotocols are enabled by default in all framework integrations that support websockets, and the subprotocol is selected by the client via the Sec-WebSocket-Protocol header. Any application relying on 'on_ws_connect' for authentication or authorization is affected.

Strawberry GraphQL's WebSocket subscription handlers for both the 'graphql-transport-ws' and legacy 'graphql-ws' protocols allocate an asyncio.Task and associated Operation object for every incoming subscribe message without enforcing any limit on the number of active subscriptions per connection. An unauthenticated attacker can open a single WebSocket connection, send connection_init, and then flood subscribe messages with unique IDs. Each message unconditionally spawns a new 'asyncio.Task' and async generator, causing linear memory growth and event loop saturation. This leads to server degradation or an OOM crash.

References

CVE Name CVE-2026-35523
CVE Name CVE-2026-35526
URL https://www.cve.org/CVERecord?id=CVE-2026-35523
URL https://www.cve.org/CVERecord?id=CVE-2026-35526