Parse Server: MFA recovery code single-use bypass via concurrent requests
Low severity
GitHub Reviewed
Published
Mar 22, 2026
in
parse-community/parse-server
•
Updated Mar 24, 2026
Package
Affected versions
>= 9.0.0, < 9.6.0-alpha.54
< 8.6.60
Patched versions
9.6.0-alpha.54
8.6.60
Description
Published to the GitHub Advisory Database
Mar 24, 2026
Reviewed
Mar 24, 2026
Last updated
Mar 24, 2026
Impact
An attacker who obtains a user's password and a single MFA recovery code can reuse that recovery code an unlimited number of times by sending concurrent login requests. This defeats the single-use design of recovery codes. The attack requires the user's password, a valid recovery code, and the ability to send concurrent requests within milliseconds.
Patches
The login handler now uses optimistic locking when updating auth data that contains consumed single-use tokens. If a concurrent request has already modified the recovery array, the update fails and the login is rejected.
Workarounds
There are no known workarounds.
References