| Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS(scrapfly.dev) | |
| 407 points by joahnn_s 15 hours ago | 196 comments | |
tl;dr: Since Chrome 148, V8 replaced its bundled fdlibm `Math.tanh` with `std::tanh`, which calls the host libm (glibc, Apple libsystem_m, or UCRT) and returns OS-specific bit patterns—making a single `Math.tanh(0.8)` call enough to identify the underlying OS and catch User-Agent spoofers. CSS trig functions and Web Audio leak similarly across different libraries (including Apple's Accelerate for FFTs). The author (Scrapfly) details how they defeat this by reproducing Apple's libm bit-for-bit or memory-mapping Windows' ucrtbase.dll directly, matching the claimed OS's rounding exactly rather than adding noise. | |
HN Discussion:
| |