The vulnerability lies in the way Parse Server handles Cloud Function dispatch. An attacker could use property names from Object.prototype (like 'toString' or 'constructor') as the name of a Cloud Function in a request. The server's internal handler registry, which was a standard JavaScript object ({}), would resolve these names to the corresponding properties on the object's prototype chain. This could lead to a Denial of Service (DoS) through infinite recursion or allow an attacker to bypass Cloud Function dispatch validation.
The patch addresses this vulnerability by changing the initialization of the handler registries for Cloud Functions, Jobs, Triggers, and Validators. Instead of using {}, the patch introduces a createStore function that returns a prototype-free object created with Object.create(null). This ensures that when looking up a function by name, only explicitly defined handlers are found, and the prototype chain is not traversed. The getStore function, which is responsible for looking up handlers in these stores, is the key location where the vulnerable lookup occurs. The modification to how the stores are created directly mitigates the vulnerability within getStore.