Executive brief
Passbolt's browser extension used for password management includes a feature that checks newly typed passwords against a breach database in real time. However, this feature sends multiple API requests as users type character-by-character, allowing network observers to infer which characters are being entered and potentially brute-force the complete password. This creates a privacy and security risk for users in environments where network traffic is monitored.
Technical details
The vulnerability is an information leak (CWE-200) in the Passbolt browser extension's integration with the Pwned Passwords API. While the API uses k-anonymity (sending only the first 5 nibbles of a SHA1 password hash) to protect privacy, Passbolt emits one API request per keystroke as a user types a password. An attacker capable of observing HTTPS traffic to the Pwned Passwords service can use the sequence and timing of partial SHA1 hash prefixes to deduce which characters were typed, progressively reconstructing the password through brute-force. No authentication is required; the attack requires only network visibility (man-in-the-middle or ISP-level access). The vulnerability affects all versions before 4.6.2, which added padding and request batching to eliminate the keystroke-to-API mapping.
Affected products
- Passbolt Browser Extension before 4.6.2
Timeline
- 2024-04-26: disclosed
- 2024: patched: Fixed in version 4.6.2