getTimezoneOffset disagrees with the Intl IANA timezone's actual offset

br.timezone_offset_vs_intl  ·  convicts

browserlayer
coherencecategory
2evaders caught

What it catches

Internal timezone coherence (self-contained — no Worker, no IP-geo). Date.getTimezoneOffset() and the IANA zone from Intl.DateTimeFormat().resolvedOptions().timeZone both derive from ONE OS setting, so the zone's current UTC offset (recomputed via Intl with an explicit timeZone) must equal -getTimezoneOffset(). A naive residential-proxy geo-spoof patches one field and forgets the other (or hardcodes a wrong-season offset). Grounded headless: a real browser AND a legit CDP timezone override (Emulation.setTimezoneOverride, which moves the whole Intl/Date engine together) are both coherent — no fire; a one-field JS spoof diverges. FP-safe ACTIVE.

Signals it reads

browser.timezone_internal_incoherent

How it fires

present

Evaders it caught 2

Bypassed by 10

Frontier evaders that reach the detector uncaught (scored only suspicious, defeating every convicting tell) — this check is not one that stops them. The red-team frontier this detection still has to convict.

← all detections