Hi everyone,
I’d like to report a potential privacy concern related to how Vaultwarden handles favicon caching.
Vaultwarden automatically fetches and stores website icons when users interact with login entries. These icons are then served via predictable URLs like:
/icons/<domain>/icon.png
In a multi-user environment, this may introduce a privacy issue.
What happens
If you directly request an icon URL:
-
When the icon already exists, it is returned immediately
-
When the icon does not exist, the request takes noticeably longer (~10 seconds)
This difference in response time can be used to infer whether a specific domain has been accessed by any user on the instance.
Example
https://vault.example.com/icons/www.risorsainformatica.com/icon.png
By measuring response times, it’s possible to determine if that domain is present in the cache.
Why this matters
In shared Vaultwarden instances, this could allow users to:
-
Infer which websites other users have accessed
-
Identify usage of potentially sensitive services (internal tools, admin panels, etc.)
Notes
This is not a critical vulnerability, but rather a privacy-related side-channel that might be relevant in:
-
Team environments
-
Self-hosted shared instances
Possible improvements
Some ideas that might mitigate this:
-
Normalize response times for cached/non-cached icons
-
Restrict access to the
/iconsendpoint -
Optionally disable favicon caching
-
Scope caching per user
I’m sharing this to get feedback from the community and understand if this is expected behavior or something worth addressing.
Thanks!