Description
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.6.0-alpha.7 and 8.6.33, when multi-factor authentication (MFA) via TOTP is enabled for a user account, Parse Server generates two single-use recovery codes. These codes are intended as a fallback when the user cannot provide a TOTP token. However, recovery codes are not consumed after use, allowing the same recovery code to be used an unlimited number of times. This defeats the single-use design of recovery codes and weakens the security of MFA-protected accounts. An attacker who obtains a single recovery code can repeatedly authenticate as the affected user without the code ever being invalidated. This vulnerability is fixed in 9.6.0-alpha.7 and 8.6.33.
Problem types
CWE-672: Operation on a Resource after Expiration or Release
Product status
< 8.6.33
References
github.com/...server/security/advisories/GHSA-4hf6-3x24-c9m8
github.com/parse-community/parse-server/releases/tag/8.6.33
github.com/...munity/parse-server/releases/tag/9.6.0-alpha.7