CVE-2023-41058: Trigger `beforeFind` not invoked in internal query pipeline in parse-server
Impact
A Parse Pointer can be used to access internal Parse Server classes. It can also be used to circumvent the beforeFind query trigger which can be an additional vulnerability for deployments where the beforeFind trigger is used as a security layer to modify an incoming query.
Patches
The vulnerability was fixed by implementing a patch in the internal query pipeline to prevent a Parse Pointer to be used to access internal Parse Server classes or circumvent the beforeFind trigger.
Workarounds
There is no known workaround to prevent a Parse Pointer to be used to access internal Parse Server classes. A workaround if a beforeFind trigger is used as a security layer is to instead use the Parse Server provided security layers to manage access levels with Class-Level Permissions and Object-Level Access Control.
References
- GitHub security advisory: https://github.com/parse-community/parse-server/security/advisories/GHSA-fcv6-fg5r-jm9q - Patched in Parse Server 6.x: https://github.com/parse-community/parse-server/releases/tag/6.2.2 - Patched in Parse Server 5.x (LTS): https://github.com/parse-community/parse-server/releases/tag/5.5.5
Other sources
Parse Server is an open source backend server. In affected versions the Parse Cloud trigger beforeFind is not invoked in certain conditions of Parse.Query. This can pose a vulnerability for deployments where the beforeFind trigger is used as a security layer to modify the incoming query. The vulnerability has been fixed by refactoring the internal query pipeline for a more concise code structure and implementing a patch to ensure the beforeFind trigger is invoked. This fix was introduced in commit be4c7e23c6 and has been included in releases 6.2.2 and 5.5.5. Users are advised to upgrade. Users unable to upgrade should make use of parse server's security layers to manage access levels with Class-Level Permissions and Object-Level Access Control that should be used instead of custom security layers in Cloud Code triggers.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is CVE-2023-41058?
CVE-2023-41058 is a vulnerability in Parse Server that allows a Parse Pointer to access internal classes and bypass the beforeFind query trigger.
What is the impact of CVE-2023-41058?
The impact of CVE-2023-41058 is that it can bypass the beforeFind query trigger, which can be a security vulnerability if the trigger is being used to modify incoming queries.
What is the severity of CVE-2023-41058?
CVE-2023-41058 has a severity rating of 7.5 (High).
How can I fix CVE-2023-41058?
To fix CVE-2023-41058, update Parse Server to version 6.2.2 or above.
Where can I find more information about CVE-2023-41058?
You can find more information about CVE-2023-41058 at the following references: [Reference 1](https://github.com/parse-community/parse-server/security/advisories/GHSA-fcv6-fg5r-jm9q), [Reference 2](https://nvd.nist.gov/vuln/detail/CVE-2023-41058), [Reference 3](https://github.com/parse-community/parse-server/commit/be4c7e23c63a2fb690685665cebed0de26be05c5).