VDB
KO
LOW

GHSA-2299-ghjr-6vjp

Parse Server: MFA recovery code single-use bypass via concurrent requests

Details

### 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.

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

References