GHSA-2299-ghjr-6vjp
Parse Server: MFA recovery code single-use bypass via concurrent requests
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | parse-server | >= 9.0.0, < 9.6.0-alpha.54 | 9.6.0-alpha.54 |
| npm | parse-server | < 8.6.60 | 8.6.60 |
Details
As written in the advisory (Markdown source, shown as plain text).
### 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
External links from the advisory. They lead to third-party sites.
- https://github.com/parse-community/parse-server/security/advisories/GHSA-2299-ghjr-6vjp
- https://nvd.nist.gov/vuln/detail/CVE-2026-33624
- https://github.com/parse-community/parse-server/pull/10275
- https://github.com/parse-community/parse-server/pull/10276
- https://github.com/parse-community/parse-server/commit/5e70094250a36bfcc14ecd49592be2b94fba66ff
- https://github.com/parse-community/parse-server/commit/fc3da35a81d5083b453e8967cabcc880f1a3bd0c
- https://github.com/parse-community/parse-server