Headline
CVE-2023-26081: Unsandboxed Password Manager
In Epiphany (aka GNOME Web) through 43.0, untrusted web content can trick users into exfiltrating passwords, because autofill occurs in sandboxed contexts.
Summary
Multiple password managers can be tricked into auto-filling credentials into untrusted pages. This can lead to account compromise for any users using these password managers.
Severity
High - This vulnerability leverages password managers to auto-fill credentials into untrusted pages, without the master password.
Proof of Concept
- Go to https://coop.xss.guru/sign-in and enter credentials
- Have the password manager save the credentials
- Go to https://coop.xss.guru/sign-in-alt and confirm that the password manager autofills the credentials as expected
- Go to https://coop.xss.guru/sign-in-phish-csp-sandbox: The password manager should not auto-fill credentials since the page has a CSP sandbox response header
- Go to https://coop.xss.guru/sign-in-phish-iframe-sandbox: The password manager should not auto-fill credentials since the form is inside of a sandboxed iframe
Further Analysis
Password managers should check whether content is sandboxed before auto-filling credentials. This can be done in many ways, but one way is to check self.origin of a page and refusing to fill in credentials if self.origin is "null".
- Bitwarden: Vulnerable - Bitwarden was found to auto-fill credentials into both types of sandboxed content as soon as the user clicked on the Bitwarden chrome extension. Fixed and released on 12/14/2022.
- DashLane: Vulnerable - DashLane immediately auto-fills credentials into the CSP sandboxed page. It displays a warning box before auto-filling credentials into the sandboxed iframe. Fixed and released on 12/2/2022.
- Safari: Vulnerable - Safari auto-fills credentials into both types of sandboxed content though user interaction is required.
- LastPass: Secure
- 1Password: Secure
- Chrome: Secure
- Edge: Secure
Timeline
Date reported: 10/19/2022, Vulnerability reported to Apple on 1/18/2023
Date fixed: Fixed in Bitwarden (12/14/2022) and DashLane (12/2/2022)
Date disclosed: 1/17/2023