Browser fingerprinting via favicon

7 hours ago (github.com)

I was sure this has been a thing for a while, either that or safari has a UI bug since forever.

I regularly get the wrong favicon in specific sites, for example ars technica favicon in reddit

  • My hacker news icon has been stuck as the icon for a weather site that I sometimes check. It’s been stuck that way for close to a year now, and has survived an iOS update too.

    It persists across profiles and into private browsing mode.

  • Safari has super long lived favicon caches too. The only way to force a rebuild is to set your system clock forward a few years.

  • I thought I was the only one! Something in the UI cache is so horribly corrupted and it has been for years on my MacBook, I just gave up hope.

What is the live demo supposed to do? I just get stuck in an endless redirect loop with a counter going from 1 to 18 and then restarting. I’m using Safari on iOS.

  • Android/Firefox it showed me my unique ID after the first 18. Then there was a button to try again ans that put me in the same loop you're having.

    • Safari on iOS. It goes to 18/18 and then starts over from 1/18 again for me too. I had not pressed any retry button, this happened the first time I visited the page. And I wasn’t even in private browsing mode. Just navigated to it normally.

Reminds me I noticed macOS Safari pulling in the favicons somewhat frequently when I load the new tab page with favorites on it.

Definitely something I don't want. Maybe I should just remove the favorites or maybe I can save them as redirects or HTML or something.

Note I use private windows most often & shoutout Little Snitch for driving the discovery.

I just got a refresh per second and a counter from 1/18 to 18/18 and repeat. Feels like I wasted 20s.

Nonpersistent vm-based browser, I use qemu + cage + firefox and some glue logic to fire up a copy of a base image which gets deleted on exit. Fires up slower than a native firefox instance but runs all the same.

Can containerize for the less paranoid and less work but browsers touching host kernel gives me the ick as does the idea of trying to write ebpf policies for firefox to mitigate. Browsers are pain.

  • Tried a similar approach but found that putting the browser in a VM has a tendency to expose a few data points that stand out as less trust worthy which means you end up getting a lot of captchas on some websites (like using swiftshader for renderer, not having some fonts installed, among other things), lying about these can typically be detected as well (like injecting noise into a canvas, modifying the advertised renderer). If you've found any solutions to these please share.

I have never liked how Safari always tries to reload favicons. Seems like an obvious and annoying privacy leak.

I don't understand the live demo

it gave me some ID, but how do I test that some different website can track me resulting in same ID?

or is it only "detect private browsing/container on same browser" kind of stuff?

Probably not a popular opinion here but i'm honestly impressed that someone made this work?

  • There is ad money at stake, and it is unfortunately one of the key revenue models in the modern web. I don't know if this particular research was sponsored by ad-tech or if it's preventive, but it shouldn't be generally surprising that this kind of things are heavily researched.

Does it work if you disable favicons? (I disabled favicons when I set up the computer, but for a different reason; it is a feature that I don't use.)

  • If websites can detect that you've disabled favicons, then you are easy to track between all websites because you are very unusual.

This is great, I needed more tools for tracking bad users who have been banned and try to ban evade. I have been using Samy Kamkars evercookie which is pretty good but some of the techniques are dated.

did anyone ever make use of this in practice? 32 redirects to construct a unique id seems very impractical

  • Ad networks don’t care. It’s a data leak. Even a few extra bits can be valuable to tag you with a better uid.

Can’t wait for this to be abused and linked to your digital ID through the wallet app!