CVE-2026-30241: Missing Query Depth Validation in Mercurius GraphQL Subscriptions
Vulnerability ID: CVE-2026-30241
CVSS Score: 2.7
Published: 2026-03-06
A logic vulnerability in the Mercurius GraphQL adapter for Fastify allows attackers to bypass query depth limits using WebSocket subscriptions. While standard HTTP queries are validated against the configured queryDepth, subscription operations received via the WebSocket transport layer skip this check. This oversight allows unauthenticated remote attackers to submit arbitrarily nested queries, potentially leading to Denial of Service (DoS) via CPU and memory exhaustion when the subscription events are resolved.
TL;DR
Mercurius versions prior to 16.8.0 fail to apply queryDepth limits to GraphQL subscriptions over WebSockets. Attackers can exploit this to send deeply nested queries that exhaust server resources.
⚠️ Exploit Status: POC
Technical Details
- CVE ID: CVE-2026-30241
- CVSS v4.0: 2.7 (Low)
- CWE: CWE-863 (Incorrect Authorization)
- Attack Vector: Network (WebSocket)
- Impact: Denial of Service
- Exploit Status: PoC Available (Regression Test)
Affected Systems
- Mercurius GraphQL Adapter
- Fastify applications using Mercurius
- Node.js GraphQL servers using Mercurius subscriptions
-
mercurius: < 16.8.0 (Fixed in:
16.8.0)
Code Analysis
Commit: 5b56f60
Fix: apply queryDepth validation to subscription queries
Exploit Details
- GitHub Commit: Regression test included in the fix commit demonstrates the vulnerability.
Mitigation Strategies
- Software Update
- Input Validation
- Resource Limiting
Remediation Steps:
- Update the
mercuriusdependency to version16.8.0or higher vianpm install mercurius@latest. - Verify that
queryDepthis configured in the Mercurius registration options. Example:app.register(mercurius, { queryDepth: 10, ... }). - Audit GraphQL schemas to identify and potentially simplify unnecessary recursive relationships.
- Consider implementing global rate limiting or cost analysis (e.g.,
graphql-cost-analysis) as a defense-in-depth measure alongside depth limiting.
References
Read the full report for CVE-2026-30241 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)