Image: Biljana Jovanovic / Pixabay
Password managers have long offered autofill—the ability for the service or app to automatically fill in login forms with your user ID and password on saved websites. But the feature carries risk, and for popular service Bitwarden, the danger is high enough that you should avoid autofill all together.
Generally, security experts advise turning off the most proactive version of autofill, where your credentials automatically get filled in on saved sites. If a website is compromised, a malicious actor can capture your login info before you visually confirm the page looks normal.
But as security firm Flashpoint.io detailed in a blog post last week, Bitwarden’s autofill has a deeper vulnerability than other services. On websites that use iframes—where a page loads HTML elements from a different webpage—login forms hosted on an external website are still filled in with the saved site’s user ID and password info. If any of those external HTML elements become compromised (like advertising, a known vector for exploits), the result could be stolen login data.
This permissiveness isn’t by accident, but design: In the company’s documentation about the issue, which was published in late 2018, Bitwarden states that its goal is to encourage better adaption to a password manager. The company gives the example of iCloud as a major website that still uses iframes to connect to apple.com for login.
This vulnerability exists whether you have Bitwarden preemptively fill out login forms or you manually trigger autofill; Flashpoint’s testing showed that either usage of autofill carries the same risk. Bitwarden also doesn’t warn users when they’re filling out a form hosted on a different page or site, and gives a free pass to subdomains of a website, too. Meanwhile, other password managers look like safer options, as they remain stricter with their autofill policies. During Flashpoint’s spot check of rivals, they only autofilled for the site saved in the vault entry, or at least flashed a warning if an iframe pulled in an external form.
As a password manager user, you can take two major steps to protect yourself from this kind of vulnerability. (And no, the answer isn’t to never use a password manager.)
- Leave preemptive autofill off. Good services and apps have this disabled by default—leave it that way for better security.
- Use a service or app that won’t autofill forms hosted on external sites, or at the very least, will warn you that you’re about to do so.
If you decide to stick with Bitwarden, which is an otherwise reliable service and our favorite free password manager, you should also leave off preemptive autofill. But you should take this precaution as well:
- Only use manually triggered autofill on sites you can reasonably trust. For example, Apple should have the resources to guard against compromised HTML elements. (If they fail to protect users against this kind of exploit, everyone’s in far bigger trouble.)
Dominik Tomaszewski / Foundry
Unfortunately, Bitwarden users don’t seem able to bypass this autofill issue when copy and pasting login info from the password manager into a form. If an externally hosted form is compromised, it’s compromised. So regardless of how you input your login details, you won’t know if it’s an internally or externally hosted form—and that’s the issue.
As for official websites that are compromised, nothing can yet protect against that situation. That’s why random passwords for each and every site, service, and app are so important—they keep the damage limited to that one place. And like it or not, the best way to keep track of tens (if not hundreds) of credentials is a password manager. Choose (and use) one judiciously, and you should avoid most trouble.
Author: Alaina Yee, Senior Editor
Alaina Yee is PCWorld’s resident bargain hunter—when she’s not covering PC building, computer components, mini-PCs, and more, she’s scouring for the best tech deals. Previously her work has appeared in PC Gamer, IGN, Maximum PC, and Official Xbox Magazine. You can find her on Twitter at @morphingball.