mirror of
https://github.com/louislam/uptime-kuma.git
synced 2026-03-02 22:57:00 -05:00
Handling issues when enabled Firefox's fingerprinting resistance #2457
Labels
No labels
A:accessibility
A:api
A:cert-expiry
A:core
A:dashboard
A:deployment
A:documentation
A:domain expiry
A:incidents
A:maintenance
A:metrics
A:monitor
A:notifications
A:reports
A:settings
A:status-page
A:ui/ux
A:user-management
Stale
ai-slop
blocked
blocked-upstream
bug
cannot-reproduce
dependencies
discussion
duplicate
feature-request
feature-request
good first issue
hacktoberfest
help
help wanted
house keeping
invalid
invalid-format
invalid-format
question
releaseblocker 🚨
security
spam
type:enhance-existing
type:new
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/uptime-kuma#2457
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @obfusk on GitHub (Aug 9, 2023).
⚠️ Please verify that this bug has NOT been raised before.
🛡️ Security Policy
Description
The favicon is broken in Firefox when not allowing access to canvas image data.
👟 Reproduction steps
Enable fingerprinting resistance (
privacy.resistFingerprinting) in Firefox.👀 Expected behavior
A favicon to be shown.
😓 Actual Behavior
No favicon, not even one without a badge.
🐻 Uptime-Kuma Version
1.22.1
💻 Operating System and Arch
Debian GNU/Linux 11
🌐 Browser
Firefox
🐋 Docker Version
No response
🟩 NodeJS Version
No response
📝 Relevant log output
No response
@Computroniks commented on GitHub (Aug 9, 2023):
The issue appears to be caused by an external package we use to generate the badges for the favicons called Favico. It appears to be this line that causes the issue:
github.com/ejci/favico.js@6a3f430be5/favico.js (L537)It looks like this reads the data in the canvas (which is prevented by firefox) and writes it back to the favicon (it writes blank because firefox blocked the read). This behaviour looks similar to a bug I saw for firefox when looking into this which said a similar thing except with the QR code for web.whatsapp.com (https://bugzilla.mozilla.org/show_bug.cgi?id=1446472)
@Computroniks commented on GitHub (Aug 9, 2023):
Given that the last update to that package was in 2016, I don't think we will get too far with getting this issue fixed there. We might be able to roll our own version of it with the fix though. I will have a bit of a play around with it and see if I can get anything working at all.
@louislam commented on GitHub (Aug 10, 2023):
According to https://support.mozilla.org/en-US/kb/firefox-protection-against-fingerprinting
I think it is the case. You have to accept that something may be broken in this mode. And it is not a web standard, nothing we can do here.
Since Uptime Kuma is a selfhosted and open source. You can always check the source code to see if Uptime Kuma really track you down via canvas. If possible, it should be safe to add your Uptime Kuma to the whitelist.
@obfusk commented on GitHub (Aug 10, 2023):
I think it should be possible to handle this in Uptime Kuma. But it may not be easy to, especially if it involves modifying a dependency that doesn't seem to be getting updates. And I certainly understand if this is not considered a priority, especially since it does indeed violate web standards.
I mostly reported this here to document why it's broken since that may not be obvious to users, and to see if there might be a way to handle this better in Uptime Kuma. Of course, whitelisting should indeed be a safe and effective solution.
@CommanderStorm commented on GitHub (Apr 14, 2024):
How do you think this can be done?
The issue is that reading the canvas element is blocked. I don't see a way to get around that.
We have a dynamic favicon and I don't think this should change..
I think solving this issue is fundamentally impossible while retaining the dynamic favicon
=> closing as wontfix. We can reopen if somebody comes up with a way to retain this functionality even in this submode of firefox.
In the meantime firefox has implemented a different method: