VDB
KO
LOW

GHSA-r3xq-68wh-gwvh

Parse Server has a password reset token single-use bypass via concurrent requests

Details

### Impact

The password reset mechanism does not enforce single-use guarantees for reset tokens. When a user requests a password reset, the generated token can be consumed by multiple concurrent requests within a short time window. An attacker who has intercepted a password reset token can race the legitimate user's password reset request, causing both requests to succeed. This may result in the legitimate user believing their password was changed successfully while the attacker's password takes effect instead.

All Parse Server deployments that use the password reset feature are affected.

### Patches

The password reset token is now atomically validated and consumed as part of the password update operation. The database query that updates the password includes the reset token as a condition, ensuring that only one concurrent request can successfully consume the token. Subsequent requests using the same token will fail because the token has already been cleared.

### Workarounds

There is no known workaround other than upgrading.

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.6.0-alpha.28
Fix npm install parse-server@9.6.0-alpha.28
npm / parse-server
Introduced in: 0 Fixed in: 8.6.48
Fix npm install parse-server@8.6.48

References