Parse Server has a LiveQuery protected-field guard bypass via array-like logical operator value
Moderate severity
GitHub Reviewed
Published
Mar 29, 2026
in
parse-community/parse-server
•
Updated Apr 1, 2026
Package
Affected versions
>= 9.0.0, < 9.7.0-alpha.16
< 8.6.70
Patched versions
9.7.0-alpha.16
8.6.70
Description
Published by the National Vulnerability Database
Mar 31, 2026
Published to the GitHub Advisory Database
Apr 1, 2026
Reviewed
Apr 1, 2026
Last updated
Apr 1, 2026
Impact
An authenticated user with
findclass-level permission can bypass theprotectedFieldsclass-level permission setting on LiveQuery subscriptions. By sending a subscription with a$or,$and, or$noroperator value as a plain object with numeric keys and alengthproperty (an "array-like" object) instead of an array, the protected-field guard is bypassed. The subscription event firing acts as a binary oracle, allowing the attacker to infer whether a protected field matches a given test value.Patches
The fix validates that
$or,$and, and$noroperator values are arrays in the LiveQuery subscription handler, the query depth checker, and the protected-field guard. As defense in depth, the LiveQuery query evaluator also rejects non-array values for these operators.Workarounds
There is no known workaround.
References