HackerOne · Report #2529780
Improper Authentication - 2FA OTP Reusable
How it was found
Summary: I found an “Improper Authentication” issue where the 2FA OTP generated by the Microsoft Authenticator app can be used for two-step verification in HackerOne. This is similar to the common issue where tokens remain usable after logout. This means that the OTP does not have an invalidation period even if the app has generated a new OTP.
Description: OTP is generated every 30 seconds. In the POC, I let the app generate three OTPs, meaning 90 seconds passed to let the old OTP. Supposedly, the old OTP is no longer valid because a new OTP is generated. However, I was still able to use the old OTP.
Steps To Reproduce
- Set up an account that has 2FA enabled
- Login to the account
- View the otp created by the Authenticator app
- Let the app create 3x otp (it's up to you how many you want)
- But, the otp used is the first one
POC
███████
Reference
CVSS Explaination
Privileges required: HIGHI admit, to accomplish this attack means that the attacker already has the victim's user credential/password data (there are many ways to do this, e.g. credential stealer etc.).CIA : HIGHThe success of the attacker taking over the account will have an impact on confidentiality (private programs, account data, etc.), integrity (the attacker is able to control what he wants to do with the account), Availability imagine the attacker changing the email, etc. until finally the victim has no access to the account.
But the final decision on CVSS is still up to you.
Impact
The generated otp codes are all common as in the 6-digit otp list on github, with the reusable otp loophole, this increases the probability of successful brute force otp. In other words, the loophole impacts the takeover account.
{F3317700}