bitwarden / mobile

Retired Bitwarden mobile app for iOS and Android (MAUI/Xamarin).
https://bitwarden.com
GNU General Public License v3.0
21 stars 2 forks source link

Cannot Change 2FA Method when logging in on a non-google Android device, therefore cannot log in to Bitwarden #2334

Open XUIBVFOV3TnDqEtVNnJPuQaefFZvYa9SnV1qAGe opened 1 year ago

XUIBVFOV3TnDqEtVNnJPuQaefFZvYa9SnV1qAGe commented 1 year ago

Steps To Reproduce

  1. Enable TOTP as a 2FA method on your Bitwarden account via the web vault
  2. Add a FIDO2 hardware security key as an additional 2FA method on your Bitwarden account via the web vault
  3. Download Bitwarden Android app
  4. Launch app
  5. Type in valid username and submit
  6. Type in valid password and submit
  7. Observe bug (see screenshot below)

Expected Result

I would expect to be able to switch my 2FA method to TOTP, type in my TOTP code, and be signed in.

Actual Result

A "validating" modal appears and stays until the app is quit. This modal blocks the ability to click the hamburger dot in the top right, therefore blocking the ability to swap over to a different 2FA method.

Screenshots or Videos

screenshot (sorry for the poor quality, I had to take a picture of the screen with a different camera because Bitwarden blocks screenshots)

Additional Context

This bug is occurring on GrapheneOS with no Google Play Services installed.

~Because there are no Google Play Services installed, and Bitwarden doesn't support FIDO2 hardware keys without depending on Google Play Services,~ I cannot use my FIDO2 hardware key as a 2FA method. However, because of this bug, I cannot switch to using any other 2FA method either (in this case, TOTP), meaning that I can't log into the app at all unless I remove my FIDO2 hardware key as a 2FA method, which downgrades my security.

Operating System

Android

Operating System Version

GrapheneOS Android 13 (No Google Play Services Installed)

Device

Pixel 5a

Build Version

2023.1.0 (5786)

Beta

XUIBVFOV3TnDqEtVNnJPuQaefFZvYa9SnV1qAGe commented 1 year ago

I did some more poking around here in this repo, and unless things have changed since #1519, Bitwarden doesn't need Google Play Services for FIDO2 support. So I actually have no idea why Bitwarden gets stuck at this "Validating" modal to begin with.

mpbw2 commented 1 year ago

I did some more poking around here in this repo, and unless things have changed since #1519, Bitwarden doesn't need Google Play Services for FIDO2 support.

That's correct, we expect the FIDO2 auth flow to be handled by the default browser for exactly this situation. That said, I'm not sure why your browser isn't launching...

ygG0JKGbxkD58JyafuZKZVF55gbrOUdPbeGNfRc commented 1 year ago

+1. I request the bitwarden app on android allows the user to select other 2FA methods when logging in when webauth is setup on the account.

XUIBVFOV3TnDqEtVNnJPuQaefFZvYa9SnV1qAGe commented 1 year ago

I did some more poking around here in this repo, and unless things have changed since #1519, Bitwarden doesn't need Google Play Services for FIDO2 support.

That's correct, we expect the FIDO2 auth flow to be handled by the default browser for exactly this situation. That said, I'm not sure why your browser isn't launching...

The default browser & WebView provider on GrapheneOS is Vanadium, which probably doesn't implement WebAuthN. I do think the user should be able to chose between TOTP and FIDO2 when signing in though if they are both enabled. This bug currently prevents me from adding a FIDO2 hardware key as a 2FA option, because I'll never be able to sign in on mobile.

zw7hu7f0PJpw8FH7TulMEwYqys5wqMQoesuTbHU commented 1 year ago

The same occurs with the LineageOS Browser. Additionally, this makes it completely impossible to log in on a phone if another phone is used as a security key.

XUIBVFOV3TnDqEtVNnJPuQaefFZvYa9SnV1qAGe commented 1 year ago

Exactly.. this bug is preventing me from using a FIDO2 hardware key on my Bitwarden account at all. Could we get the option to choose which 2FA method to use when signing in on mobile? I think this is pretty standard behavior when it comes to signing in with 2FA.

7wO0lwCB8UTqRbQ3FiQDZiO2vqzyOCzV24YaVxl commented 5 months ago

Same problem here on LineAgeOS 20 without Google Play Services. Is there a solution by now (or the option to choose TOTP at login)?