Parse Server has a protected fields bypass via LiveQuery subscription WHERE clause
Moderate severity
GitHub Reviewed
Published
Mar 10, 2026
in
parse-community/parse-server
•
Updated Mar 12, 2026
Package
Affected versions
>= 9.0.0, < 9.6.0-alpha.9
< 8.6.35
Patched versions
9.6.0-alpha.9
8.6.35
Description
Published by the National Vulnerability Database
Mar 11, 2026
Published to the GitHub Advisory Database
Mar 12, 2026
Reviewed
Mar 12, 2026
Last updated
Mar 12, 2026
Impact
An attacker can exploit LiveQuery subscriptions to infer the values of protected fields without directly receiving them. By subscribing with a WHERE clause that references a protected field (including via dot-notation or
$regex), the attacker can observe whether LiveQuery events are delivered for matching objects. This creates a boolean oracle that leaks protected field values. The attack affects any class that has bothprotectedFieldsconfigured in Class-Level Permissions and LiveQuery enabled.Patches
The fix adds validation of the LiveQuery subscription WHERE clause against the class's protected fields, mirroring the existing REST API validation. If a subscription's WHERE clause references a protected field directly, via dot-notation, or inside
$or/$and/$noroperators, the subscription is rejected with a permission error. This is applied during subscription creation, so existing event delivery paths are not affected.Workarounds
Disable LiveQuery for classes that use
protectedFieldsin their Class-Level Permissions, or removeprotectedFieldsfrom classes that require LiveQuery.References
References