Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.5.2-alpha.7 and 8.6.20, Parse Servers internal tables, which store Relation field mappings such as role memberships, can be directly accessed via the REST API or GraphQL API by any client using only the application key. No master key is required. An attacker can create, read, update, or delete records in any internal relationship table. Exploiting this allows the attacker to inject themselves into any Parse Role, gaining all permissions associated with that role, including full read, write, and delete access to classes protected by role-based Class-Level Permissions (CLP). Similarly, writing to any such table that backs a Relation field used in a pointerFields CLP bypasses that access control. This vulnerability is fixed in 9.5.2-alpha.7 and 8.6.20.
The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Parse-server | Parseplatform | * | 8.6.20 (excluding) |
| Parse-server | Parseplatform | 9.0.0 (including) | 9.5.2 (excluding) |
| Parse-server | Parseplatform | 9.5.2-alpha1 (including) | 9.5.2-alpha1 (including) |
| Parse-server | Parseplatform | 9.5.2-alpha2 (including) | 9.5.2-alpha2 (including) |
| Parse-server | Parseplatform | 9.5.2-alpha3 (including) | 9.5.2-alpha3 (including) |
| Parse-server | Parseplatform | 9.5.2-alpha4 (including) | 9.5.2-alpha4 (including) |
| Parse-server | Parseplatform | 9.5.2-alpha5 (including) | 9.5.2-alpha5 (including) |
| Parse-server | Parseplatform | 9.5.2-alpha6 (including) | 9.5.2-alpha6 (including) |
Access control involves the use of several protection mechanisms such as:
When any mechanism is not applied or otherwise fails, attackers can compromise the security of the product by gaining privileges, reading sensitive information, executing commands, evading detection, etc. There are two distinct behaviors that can introduce access control weaknesses: