Parse Server affected by denial-of-service via unbounded query complexity in REST and GraphQL API
High severity
GitHub Reviewed
Published
Mar 10, 2026
in
parse-community/parse-server
•
Updated Mar 16, 2026
Package
Affected versions
< 8.6.15
>= 9.0.0, < 9.5.2-alpha.2
Patched versions
8.6.15
9.5.2-alpha.2
Description
Published by the National Vulnerability Database
Mar 10, 2026
Published to the GitHub Advisory Database
Mar 11, 2026
Reviewed
Mar 11, 2026
Last updated
Mar 16, 2026
Impact
An unauthenticated attacker can exhaust Parse Server resources (CPU, memory, database connections) through crafted queries that exploit the lack of complexity limits in the REST and GraphQL APIs.
All Parse Server deployments using the REST or GraphQL API are affected.
Patches
The vulnerability is fixed by introducing configurable request complexity limits via the
requestComplexityserver option with the following keys:subqueryDepth: Maximum nesting depth for$inQuery,$notInQuery,$select,$dontSelectincludeDepth: Maximum depth of dot-separatedincludepathsincludeCount: Maximum number ofincludefields per querygraphQLDepth: Maximum depth of GraphQL field selectionsgraphQLFields: Maximum number of field selections in a GraphQL queryRequests using master key or maintenance key bypass these limits. Set any property to
-1to disable that specific limit.In versions
8.6.15and9.5.2-alpha.2, these limits were enabled by default. This unintentionally introduced a breaking change for some applications with legitimate complex queries. In versions8.6.46and9.6.0-alpha.22, the defaults were changed to-1(disabled) to restore backwards compatibility.The limits remain available as configuration options. To mitigate the vulnerability, upgrade to a patched version and set each
requestComplexityproperty to a value appropriate for your application.Workarounds
There is no known workaround.
References
References