creepjs icon indicating copy to clipboard operation
creepjs copied to clipboard

Workers test throwing unsupported on Safari 17.3

Open Joe12387 opened this issue 1 year ago • 10 comments

Hi there.

I noticed that your service worker test does not seem to work properly on Safari as of 17.3 on both macOS and iOS, and it says that all service worker types are unsupported. Correct me if I'm wrong, but I do believe service workers are still a supported feature in Safari and, if my memory serves me, versions of Safari prior to 17.3 worked as expected on this page.

Thanks!

Joe12387 avatar Feb 14 '24 00:02 Joe12387

Good catch. It's likely connected with the use of inline workers and modifications implemented here. I will investigate.

  • https://github.com/abrahamjuliot/creepjs/issues/207

abrahamjuliot avatar Feb 21 '24 15:02 abrahamjuliot

I'm pondering on whether it is worth changing to support Safari. For now, the single file test page works on safari here. https://abrahamjuliot.github.io/fpworker/

abrahamjuliot avatar Mar 08 '24 05:03 abrahamjuliot

Interesting. DedicatedWorkerGlobalScope in Safari 17.4 on both macOS and iOS is consistent with Window when it comes to canvas, but ServiceWorkerGlobalScope and SharedWorkerGlobalScope do not appear to be applying canvas fingerprinting protections and the hashes remain the same even in a private window. Maybe it's just a bug in your code, but have we found ourselves a fingerprinting vulnerability in Safari?

Joe12387 avatar Mar 08 '24 21:03 Joe12387

A vulnerability seems to be the case. Possibly connected with https://bugs.webkit.org/show_bug.cgi?id=243555.

abrahamjuliot avatar Mar 10 '24 18:03 abrahamjuliot

Apple seems to disagree.

Screenshot 2024-03-14 at 4 23 58 PM

Joe12387 avatar Mar 14 '24 20:03 Joe12387

It's likely determined low based on the severity of canvas entropy derived from Apple GPUs. Canvas protections, at best, probably only neutralize annoying cross site trackers.

WebKit hardware acceleration entropy seems fairly uniform within the same OS/browser version. ¯\_(ツ)_/¯

I imagine, they will consider and fix if feasible. I recall Brave had a similar issue and patched.

abrahamjuliot avatar Mar 14 '24 21:03 abrahamjuliot

As it turns out, I just discovered that this affects Firefox as well. Service Workers don't apply canvas protections.

Joe12387 avatar Mar 15 '24 01:03 Joe12387

Apple assigned this vulnerability as CVE-2024-27830 and resolved the issue in Safari 17.5. Firefox's issues should be resolved in 127.

Screenshot 2024-06-12 at 5 34 42 PM

Joe12387 avatar Jun 12 '24 21:06 Joe12387

Nice. Thanks for the update @Joe12387

abrahamjuliot avatar Jun 17 '24 15:06 abrahamjuliot