HexBrain

Mozilla · Report #2197244

Account deletion using the /v1/account/destroy API endpoint using account password without 2FA verification

Validstatus
mediumseverity
$1,000bounty
53upvotes
17 Jun 2024disclosed

How it was found

Summary:

The account deletion endpoint at POST /v1/account/destroy does not check for 2FA and doesn't require an authorization header. Therefore, an unauthenticated attacker who knows the password of a user can delete their account without the need of 2FA.

Steps To Reproduce:

  1. Send a POST request to https://api-accounts.stage.mozaws.net/v1/account/destroy with the following body (do not include an Authorization header, if it is included and doesn't match the e-mail in the body, the request will fail):
{"email":"<email>","authPW":"<authPW>"}

The authPW can be calculated by the attacker since it is created client-side and the source code is publicly available.

Please refer to {F2756126} to calculate the authPW.

Supporting Material/References:

An example of a successful account deletion: {F2756132}

Impact

Summary:

An unauthenticated attacker can delete Firefox accounts of other users without needing 2FA, if the attacker knows their password.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original