VDB
KO
HIGH

GHSA-72hp-qff8-4pvv

Parse Server has a protected fields bypass via logical query operators

Details

### Impact

The validation for protected fields only checks top-level query keys. By wrapping a query constraint on a protected field inside a logical operator, the check is bypassed entirely. This allows any authenticated user to query on protected fields to extract field values.

All Parse Server deployments have default protected fields and are vulnerable.

### Patches

The fix adds recursive validation of sub-queries with logical operators, consistent with the existing recursive validation patterns.

### Workarounds

Use a `beforeFind` trigger on affected classes to manually inspect the query for protected field references in logical operator sub-queries and reject the request.

### References

- GitHub security advisory: https://github.com/parse-community/parse-server/security/advisories/GHSA-72hp-qff8-4pvv - Fix Parse Server 9: https://github.com/parse-community/parse-server/releases/tag/9.5.2-alpha.6 - Fix Parse Server 8: https://github.com/parse-community/parse-server/releases/tag/8.6.19

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / parse-server
Introduced in: 9.0.0 Fixed in: 9.5.2-alpha.6
Fix npm install parse-server@9.5.2-alpha.6
npm / parse-server
Introduced in: 0 Fixed in: 8.6.19
Fix npm install parse-server@8.6.19

References