Argon2 error in Vivaldi browser

My Linux desktop Brave browser now works with Bitwarden/Argon2id, but the Vivaldi browser, same desktop Linux, same Bitwarden version 2023.2.0, refuses to work with Argon, claiming that Wasm is not available. However Wasm is available in that Vivaldi browser - at least the Wasm benchmark at WebAssembly Benchmark by PSPDFKit runs to a successful completion as expected.

Why doesn’t Bitwarden 2023.2.0 realize that my Linux desktop Vivaldi (version 4.2.2406.44) has Wasm available?

Does the web vault work for you in vivaldi while using argon2?

Alternatively if you have already reverted to PBKDF2 you can just test here:
https://antelle.net/argon2-browser/

I just tested with vivaldi on fedora, and both web and browser versions seem to work just fine, so it might be some configration or extension.

Thanks for considering my issue.

The bitwarden web vault did NOT work for me in Vivlaldi while I had it using argon2id, complaining that my browser lacked Wasm.

I have since reverted my bitwarden vault back to SHA256.

My vivaldi works with both WebAssembly Benchmark by PSPDFKit , as I noted above, and with the nice Argon2 in browser test you linked, using the same Argon2id KDF and the same settings for iterations, memory and parallelism that I was using on my Bitwarden vault.

The only thing in all this that doesn’t work is that the Bitwarden version 2023.2.0
refuses to work with Argon in my Linux desktop Vivaldi (version 4.2.2406.44) , claiming that Wasm is not available.

By “refuse to work” I mean that BOTH (1) I could not convert my Bitwarden vault to Argon2id from Vivaldi, AND (2) I could not access an already converted vault from Vivaldi. In BOTH cases, as soon as my Bitwarden addon to Vivaldi tries to fire up Wasm to perform vault operations locally in my Vivaldi browser, it fails complaining that Wasm is not supported in my browser.

This could well be an extension issue. My vivaldi setup uses quite a few extensions. Since you report vivaldi working ok for you with Wasm dependent Argon2id Bitwarden, I should look into that further, seeing if some extension I’m using is disabling Bitwarden’s access to Wasm. Thanks!

1 Like

Although I‘ve never used Vivaldi, I know that some browsers restrict access to WASM with some security settings.

Edge in „additional security“-mode and Safari in „Lockdown Mode“. Maybe that‘s something you should consider.

Since the other Wasm tests I’ve run, as noted above, on my Vivaldi setup, all seem to work just fine. I presume that it’s not “some security settings” disable Wasm.

(But thanks for the comment - reminds me I want to check my Vivaldi addons for possible interference with Wasm in Bitwarden.)

I disabled all my Vivaldi add-ons (by going into a private window), logged into my vault at the Bitwarden website, and asked to convert my vault’s KDF from SHA256 to Argon. When I clicked the final “Submit” button to actually do the conversion, I got, as before when using Vivaldi, the error message:

An error has occurred.
Webassembly support is required for the Argon2 KDF feature.

I am out of ideas to help debug this. For the forseeable future, I will continue to use Vivaldi and Bitwarden with a KDF of SHA256.

I moved these posts into a dedicated thread.

If you haven’t already done so, I would suggest contacting Bitwarden tech support. Point them to this thread so that they can see what troubleshooting steps you have already undertaken.

1 Like

Good move … :).

Since WASM seems to work in your browser, especially with the test site I linked you, I have 2 theories. 1.) The code used for testing WASM support is too conservative and thinks your browser does not support WASM (even though evidently it does). 2.) For some reason the Content Security Policy gets blocked for you (unlikely, but that’s what my concern with browser extensions mainly was).

Any errors in the browser console when trying to switch to argon2?

When I attempt to change my vault KDF from SHA256 to Argon2 on the vault.bitwarden.com site, at the point that I hit the final button to submit this request, I see the following two error messages in my browser console:

Webassembly support is required for the Argon2 KDF feature.
Received API exception: Webassembly support is required for the Argon2 KDF feature.

Yeah, I just realized that the actual error is caught in the code, and so it won’t show for you. Only the friendly message meant for the user will show. Anyways, the code to check whether wasm is supported being too conservative is still my best guess. Maybe it would make sense to just swap it for running one round of argon2 since that would be the most accurate check.

Could you go to this site: https://codepen.io/quexten/pen/NWLRaze?editors=1111
in Vivaldi and copy the the error from the console in the bottom of the screen (if there is any) to this thread? This could rule out whether it is the code that tests whether argon2 is supported. For me it just prints “true” in the console.

1 Like

My web debugging skills are amateur, so I might not be answering the question you thought you asked.

But what I see in the Ctrl-Shft-J console when I go to that codepen.io link is the following:

DevTools failed to load source map: Could not load content for chrome-extension://cfhdojbkjhnklbpkdaibdccddilifddb/browser-polyfill.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
DevTools failed to load source map: Could not load content for chrome-extension://lpcccgcdjibejkgiaeijbmkpbnbkglkb/common/browser-polyfill.min.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
DevTools failed to load source map: Could not load content for chrome-extension://lpcccgcdjibejkgiaeijbmkpbnbkglkb/common/purify.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME

But I am rather skilled in distribution packaging and now I observe that:

My Brave files (where Argon/Wasm works) include a browser-polyfill.min.js file with an internal version line of:

// webextension-polyfill v.0.6.0

However my Vivaldi files (where this Argon Wasm failure occurs) include only an older browser-polyfill.min.js file with an internal version line of:

// webextension-polyfill v.0.3.1

This older polyfill 0.3.1 comes from a Snap package provided by my Linux distro desktop provider, Ubuntu. I am running the Xubuntu variant of Ubuntu.

I will now look for and see if I can install a more recent Vivaldi … that might well fix this problem, and if it does, it might provide Bitwarden the clues it could use to lessen its impact on other customers, if that’s worth the effort. Since Ubuntu is a major distro provider, it might well be worth the effort.

(The other *.js file that shows up in these messages, purify.js, is identical between my Brave and Vivaldi installs, so is not, I presume, the primary cause of this error.)

Before looking for a newer Vivaldi, I do notice one possibly relevant difference between these two versions of browser-polyfill.min.js

The older, perhaps broken, Vivaldi version has:

              devtools: {
                  inspectedWindow: {
                      eval: {
                          minArgs: 1,
                          maxArgs: 2
                      }
                  },

whereas the newer, apparently working, Brave version has:

              devtools: {
                  inspectedWindow: {
                      eval: {
                          minArgs: 1,
                          maxArgs: 2,
                          singleCallbackArg: !1
                      }
                  },

Perhaps that added singleCallbackArg explains why the older devtools could not load a wasm “asm” URL scheme?

(Don’t hesitate to ignore the above speculations if they appear only to demonstrate my ignorance in these matters .)

I just upgraded to the latest vivaldi-stable Version 5.7 (published Feb 16 2023), downloaded from What’s new in Vivaldi | Vivaldi Browser, and now your web page https://codepen.io/quexten/pen/NWLRaze?editors=1111
just prints “true” in the console for me too.

I was previously using Vivaldi Version 4.2, about 1.5 years old, before.

That might be the primary reason I was failing Wasm.

I’ll give Argon a go again … but I expect it will work now.

That worked. I am now using Argon2id with Vivaldi.

Whether or not you just want to write this issue off as “shouldn’t run old browser versions”, or there is something else that’s worth doing by Bitwarden … I’ll leave that up to y’all.

Thanks!

2 Likes

Very nice! Not sure why the detection code failed on the older vivaldi version, but glad it’s working for you now :slight_smile:

1 Like