bitwarden / clients

Bitwarden client apps (web, browser extension, desktop, and cli).
https://bitwarden.com
Other
9.05k stars 1.19k forks source link

Cant unlock Extension (With Biometrics) #6156

Open cmd430 opened 1 year ago

cmd430 commented 1 year ago

Steps To Reproduce

  1. Open Browser
  2. Click on the BitWarden extension
  3. Windows hello prompt opens
  4. Enter Pin/Use Face

Expected Result

The vault should unlock

Actual Result

Vault remains locked

Screenshots or Videos

No response

Additional Context

The Desktop client unlocks as expected with Windows Hello/Biometrics but the extension will not unlock and is soft locked by the Windows Hello dialog, every time clicking the extension opens another instance of Windows Hello with no way to use master password or other means to unlock the vault

Operating System

Windows

Operating System Version

11 (22H2 Build 22621.2134)

Web Browser

Firefox

Browser Version

118.0b2 (64bit)

Build Version

2023.7.1

Issue Tracking Info

smithed commented 1 year ago

experienced this immediately after update of bitwarden desktop to:

Version 2023.8.2 Shell 24.1.1 Renderer 112.0.5615.50 Node 18.14.0 Architecture x64

While extension is Version 2023.7.1

However there is no update for the extension.

msiqx9 commented 1 year ago

I also experienced this exact problem on 29 August.

I using the latest Windows 11 (22H2 22621.2134) and the latest Firefox and Chrome browsers. As a workround I am able to unlock the browser extensions using the Bitwarden master password.

blxckbxrd commented 1 year ago

Same for me after updating the BitWarden desktop client.

Software Version
BitWarden 2023.8.2
BitWarden Firefox Extension 2023.7.1
Win 10 Pro 22H2 Build 19045.3324
Firefox 117
Firefox 118 for devs
Mullvad Browser 12.5.3 (based on Firefox 102.15.0esr)

Steps I have tried without success:

Finally, suspecting a problem with communication between the desktop client and the extension, I tried toggling "Require Verification For Browser Integration" on|off, which shows that this part of the extension and the client seem to communicate just fine, unfortunately using PIN or fingerprint always results in the extension remaining locked, with the extension endlessly looping "Awaiting confirmation from desktop".

Current Workaround: Unlock with Master password. 💀

mnixry commented 1 year ago

Same issue here. In my case, there is an error message shown in extension debug console (it seems caused by Utils are not correctly bundled?):

Uncaught (in promise) TypeError: h.fromB64ToArray(...) is null
    onMessage nativeMessaging.background.ts:324
    o background.js:1
    promise callback*l background.js:1
    o background.js:1
    promise callback*l background.js:1
    o background.js:1
    promise callback*l background.js:1
    o background.js:1
    promise callback*l background.js:1
    Pu background.js:1
    Pu background.js:1
    onMessage background.js:1
    connect nativeMessaging.background.ts:179
    Pu background.js:1
    Pu background.js:1
    connect nativeMessaging.background.ts:112
3 nativeMessaging.background.ts:324:41
    o background.js:1
    (Async: promise callback)
    l background.js:1
    o background.js:1
    (Async: promise callback)
    l background.js:1
    o background.js:1
    (Async: promise callback)
    l background.js:1
    o background.js:1
    (Async: promise callback)
    l background.js:1
    Pu background.js:1
    Pu background.js:1
    onMessage background.js:1
    connect nativeMessaging.background.ts:179
    InterpretGeneratorResume self-hosted:1455
    next self-hosted:1376
    Pu background.js:1
    Pu background.js:1
    connect nativeMessaging.background.ts:112
    apply self-hosted:2366
    applySafeWithoutClone ExtensionCommon.sys.mjs:635
    asyncWithoutClone ExtensionCommon.sys.mjs:2770

For people who also encountered this issue, you can try to open Extensions -> Debug Add-ons -> Find "BitWarden" -> Inspect and trying to reproduce the issue to see if the same error shown in console.

blxckbxrd commented 1 year ago

I did the debug as suggested by @mnixry and got almost the same error.

Here's the full log for reference:

Uncaught (in promise) TypeError: h.fromB64ToArray(...) is null
    onMessage nativeMessaging.background.ts:324
    o background.js:1
    promise callback*l background.js:1
    o background.js:1
    promise callback*l background.js:1
    o background.js:1
    promise callback*l background.js:1
    o background.js:1
    promise callback*l background.js:1
    Pu background.js:1
    Pu background.js:1
    onMessage background.js:1
    connect nativeMessaging.background.ts:179
    Pu background.js:1
    Pu background.js:1
    connect nativeMessaging.background.ts:112
nativeMessaging.background.ts:324:41
    o background.js:1
    (Async: promise callback)
    l background.js:1
    o background.js:1
    (Async: promise callback)
    l background.js:1
    o background.js:1
    (Async: promise callback)
    l background.js:1
    o background.js:1
    (Async: promise callback)
    l background.js:1
    Pu background.js:1
    Pu background.js:1
    onMessage background.js:1
    connect nativeMessaging.background.ts:179
    InterpretGeneratorResume self-hosted:1469
    next self-hosted:1390
    Pu background.js:1
    Pu background.js:1
    connect nativeMessaging.background.ts:112
    apply self-hosted:2302
    applySafeWithoutClone ExtensionCommon.sys.mjs:635
    asyncWithoutClone ExtensionCommon.sys.mjs:2776

Comparing my error log to the one previously posted, I noticed some differences in lines 18, 35, 36, 40 and 42.

@blxckbxrd's log @mnixry's log
InterpretGeneratorResume self-hosted:1469 InterpretGeneratorResume self-hosted:1455
next self-hosted:1390 next self-hosted:1376
apply self-hosted:2302 apply self-hosted:2366
asyncWithoutClone ExtensionCommon.sys.mjs:2776 asyncWithoutClone ExtensionCommon.sys.mjs:2770

I don't know if these differences indicate that the problem manifests itself differently in different setups, or if there are multiple underlying problems, but hopefully the log can help track this down, thanks for the suggestion!

cmd430 commented 1 year ago

Confirmed same error here too but inspecting the source in the debugger i can see the Utils class and the fromB64ToArray static method (so i dont think its a bundling error) but it seems that the string passed to it could be null as it has a null check and returns null on a null value image so im thinking message.keyB64 is null in the message payload for some reason so when it get passed into Utils.fromB64ToArray it just returns null and we have our issue image

sammbw commented 1 year ago

Hi there,

Thank you for your report!

I was able to reproduce this issue, and I have flagged this to our engineering team.

If you wish to add any further information/screenshots/recordings etc., please feel free to do so at any time - our engineering team will be happy to review these.

Thanks once again!

Crypt0zauruS commented 1 year ago

I experience the same problem to on Mac OS ventura 13.1:

luponec commented 1 year ago

Same trouble. Only way to workaround is to quit Desktop App and insert masterpassword manually into browser extension.

msiqx9 commented 1 year ago

I have found another workround as follows:

Boot the Windows PC normally.

Go to the System Tray (bottom right of screen) and click on the Bitwarden icon to open Bitwarden Desktop.

Log on to this Bitwarden Desktop using the Bitwarden Master Password, NOT using Biometrics.

Click on the X at the top right of the window to minimise Bitwarden Desktop back to the System Tray.

Open any browser (Firefox and Chrome in my case) and you should be able to unlock the Bitwarden extension with Biometrics. This situation should continue until the PC is shutdown or re-booted.

Crypt0zauruS commented 1 year ago

I have found another workround as follows:

Boot the Windows PC normally.

Go to the System Tray (bottom right of screen) and click on the Bitwarden icon to open Bitwarden Desktop.

Log on to this Bitwarden Desktop using the Bitwarden Master Password, NOT using Biometrics.

Click on the X at the top right of the window to minimise Bitwarden Desktop back to the System Tray.

Open any browser (Firefox and Chrome in my case) and you should be able to unlock the Bitwarden extension with Biometrics. This situation should continue until the PC is shutdown or re-booted.

Thanks for this workaround, it works on Mac OS 😀: closed bitwarden desktop app relaunched unlocked by typing master password instead of Touch ID closed and relaunched firefox extension works

Hope an update soon 😅

luponec commented 1 year ago

I have found another workround as follows ....

YES it works , thanks for sharing . I hope they will find a solution but meanwhile at least, better to enter the master password once a day than 100 ;-)

msiqx9 commented 1 year ago

It is explained here that this problem relates to the Firefox browser extension which is still on 2023.7.1 whereas the Chrome browser extension on 2023.8.2 works normally with biometrics.

LucasJanin commented 1 year ago

It is explained here that this problem relates to the Firefox browser extension which is still on 2023.7.1 whereas the Chrome browser extension on 2023.8.2 works normally with biometrics.

Make sense. Safari works great with biometrics using version 2023.8.2

richardb64 commented 1 year ago

So is the current theory that there is an incompatibility between the desktop app >=2023.8.2 and any browser extension earlier than that? That sounds like a pretty major bug, given that the release cadence is (or should be) unrelated. Please ensure the communication channel between desktop and browser extension is fully backward compatible.

A forced upgrade of every browser extension across multiple browsers is at best a poor workaround - especially given the still-unresolved usability issues (large amounts of wasted whitespace) that were introduced last November. Many people (myself included!) are staying firmly on older browser extensions until that problem is fully resolved.

In the meantime, it looks like I'll have to find an older version of the desktop app and disable updates there too, in order to retain compatibility :-(

(Yes, I know the potential security implications of pausing updates. But if I'm forced to choose between staying up to date or having a usable GUI, I'll probably have to start looking at competing tools and ditch Bitwarden altogether, which would be a shame.)

richardb64 commented 1 year ago

Maybe #5950 (Trusted Device Encryption feature) introduced this issue? Seems like a huge update to precisely this area of code. Commit 61ba9692bc7 seems as if it was trying to ensure backward compatibility, so perhaps something else broke it.

For anybody who doesn't need Enterprise SSO (the vast majority of users - companies might like it, but in the grand scheme of things it's a tiny niche feature), the behaviour of existing ways of unlocking (master password, biometrics, etc) should be totally unchanged in every respect. Looking at this page about it, there seem to be lots of areas where the SSO feature could cause significant breakage to normal workflows.

tonyhardcode commented 1 year ago

How long until we get an updated Firefox extension that works with the new desktop app update? 🫠

DiGi commented 1 year ago

I closed my report after finding this issue but I'm not sure about that. I can't unlock extension using PIN after updating extension to 2023.8.3.

I'm not using Hello Face/Windows PIN but only in-extension PIN option.

cmd430 commented 1 year ago

I'm going to close this as Firefox has now received extension version 2023.8.3 that has corrected this issue

richardb64 commented 1 year ago

Updating the extension in a particular browser is only a workaround for the main problem (as far as I am aware still unresolved), which is that the desktop client should be backward-compatible with older extensions, and this was broken by a recent change.

Please can you re-open your issue?

cmd430 commented 1 year ago

Updating the extension in a particular browser is only a workaround for the main problem (as far as I am aware still unresolved), which is that the desktop client should be backward-compatible with older extensions, and this was broken by a recent change.

Please can you re-open your issue?

This issue was specifically for the Biometrics unlocking not working that has since been fixed by the updated extension. I see the issue with breaking changes but I think that maintaining backwards compatibility would be an issue long term.

However I do agree that desktop client updates with breaking changes should be held back until all extensions have been have been pushed through to each browser (or should maintain backwards compatibility until that time) and I believe that https://github.com/bitwarden/clients/issues/6185 is a more appropriate place to track this, I will however re-open this issue to add some more visibility to this though

ewokee commented 1 year ago

same here. would love to finally use what i pay for!

Macbiz01 commented 10 months ago

Still have this issue with Chrome is up to date Version 119.0.6045.160 (Official Build) (64-bit)

The window for the fingerprint reader appears in the background and flashes in the taskbar. Only PIN is reliable. If Ctrl-shift -L is used in the browser, extension window comes up waiting for the desktop app , even if the Desktop app vAULT is already unlocked. As an aside my mobile app works flawlessly.

Git-Schlauch commented 9 months ago

Me and multiple people I know also have the problem. I tried in Edge ( 120.0.2210.77) and Brave (newest). I am on Windows 11 and have tried the app from the Microsoft Store and from the web. Every time I want to link the application to the extention it tells me that the browser integration is not activated in the app.

TESTER-sec commented 8 months ago

Me and multiple people I know also have the problem. I tried in Edge ( 120.0.2210.77) and Brave (newest). I am on Windows 11 and have tried the app from the Microsoft Store and from the web. Every time I want to link the application to the extention it tells me that the browser integration is not activated in the app.

Issues with using the Bitwarden Desktop app and integrating it with browser extension to open the extension with Windows Hello is a very long standing issue that Bitwarden has been unable to fix. Reports here about "Browser integration is not activated in the desktop app" can be found going back years (e.g. 2020 and earlier).

The reports have been made regarding "Browser integration is not activate" on/in Windows, Edge, Chrome, Firefox, Linux, etc.

There are many reports about the "Browser integration is not activated" with long threads with many different workarounds. A few posted workarounds fix the problem for a few users, but do not work for the vast majority of users.

Sometimes I can get browser integration to work for a short while, then something changes - e.g. browser update, Bitwarden extension update, Bitwarden desktop app update, Windows update - and then the browser integration again is broken.

Myself I even clean installed Windows. After I did the clean install, then the browser integration worked as expected. However, something like 3 or 4 months later the integration spontaneously broke and no matter what I tried none of it fixed the broken browser integration.

You can open a Bitwarden support ticket, and they will supply you with a procedure to fix but don't count on the issue being fixed. You will jump through all the requested hoops and still browser integration will not succeed.

Bitwarden really does appear to be a sinking ship.

ptoump commented 7 months ago

I have the same issue but only on Firefox on windows. On the same PC chrome and edge with multiple profiles work perfectly. Only firefox refuses to work..

Also I don't get any messages in debug console when I try to enable the biometrics and get the error pop-up.

aiyagari commented 4 months ago

I am having the same issue on Mac OS 13.6.6 with Firefox 126.0 and Extension 2024.4.2. So this is not limited to Windows.

Thank you for the workaround. At least it is a temporary solution -- I fully logged out of the desktop app, closed and opened it, and logged in using the master password. Then I tried the extension. One additional thing I had to do was to disable and re-enable browser integration in the desktop app. This is because the browser extension was complaining that "browser integration is not enabled in the desktop app" even though it was. When I disabled and re-enabled it, then it allowed me to enable it in the extension, and it started working again.