Chrome 148'den beri Math.tanh, işletim sistemini ele veriyor
Chrome 148'den itibaren Math.tanh, host libm'i kullanarak işletim sistemini bit düzeyinde ele veriyor; tarayıcı parmak izi ve spoofing için önemli bir detay.
Chrome 148 ile V8, Math.tanh hesaplamasını kendi taşınabilir fdlibm portu yerine platformun libm kütüphanesine (Linux'ta glibc, macOS'ta libsystem_m, Windows'ta UCRT) devretti. Sonuç, aynı girdi için işletim sistemine göre son bitlerde değişen bir çıktı: artık tek bir tanh çağrısı, tarayıcının gerçekten hangi OS üzerinde çalıştığını ele veren bir imza haline geldi.
Bu değişiklik V8 commit c1486295ae5 ve V8 14.8.57 ile geldi; Chrome 147 ve öncesi bu sızıntıya sahip değil. Diğer Math.* fonksiyonlarının çoğu (exp, pow, sin, cos gibi) hâlâ V8 içine gömülü ve her platformda aynı bitleri döndürüyor — sızıntı yalnızca tanh'a özgü. Buna karşılık CSS'nin trigonometri fonksiyonları (sin, cos, atan2 vb.) her zaman host libm'e gidiyor ve Web Audio'daki DynamicsCompressor da Mac'te skaler libsystem_m kullanıyor; FFT ve vektör işlemleri ise Accelerate/vDSP üzerinden yürüyor.
Bu ayrıntı, tarayıcı taklidi (browser spoofing) yapan sistemler için kritik: User-Agent'ı macOS olarak ayarlayıp Linux'un matematik kütüphanesinin ürettiği bitleri döndürmek, kendi kimliğinizle çelişmek anlamına geliyor. Gerçekçi bir taklit, gürültü eklemek yerine hedef işletim sisteminin algoritmasını (minimax katsayıları, azaltma sabitleri, FMA kullanımı dahil) bit bit yeniden üretmeyi gerektiriyor.