Impact
An unauthenticated attacker can crash the Parse Server process by calling a Cloud Function endpoint with a prototype property name as the function name. The server recurses infinitely, causing a call stack size error that terminates the process.
Other prototype property names bypass Cloud Function dispatch validation and return HTTP 200 responses, even though no such Cloud Functions are defined. The same applies to dot-notation traversal.
All Parse Server deployments that expose the Cloud Function endpoint are affected.
Patches
The internal handler registries for Cloud Functions, Jobs, Triggers, and Validators have been changed to prevent prototype chain properties from being resolved.
Workarounds
Place a reverse proxy or WAF in front of Parse Server and block requests to Object.prototype property names.
References
Impact
An unauthenticated attacker can crash the Parse Server process by calling a Cloud Function endpoint with a prototype property name as the function name. The server recurses infinitely, causing a call stack size error that terminates the process.
Other prototype property names bypass Cloud Function dispatch validation and return HTTP 200 responses, even though no such Cloud Functions are defined. The same applies to dot-notation traversal.
All Parse Server deployments that expose the Cloud Function endpoint are affected.
Patches
The internal handler registries for Cloud Functions, Jobs, Triggers, and Validators have been changed to prevent prototype chain properties from being resolved.
Workarounds
Place a reverse proxy or WAF in front of Parse Server and block requests to
Object.prototypeproperty names.References