Skip to content
All fingerprint checksNavigator identity

navigator.oscpu names the same OS family as the user-agent

Check id ua-oscpu-os-family-coherence

What an ordinary browser yields

On Firefox, navigator.oscpu names the same OS family as the user-agent OS token. On non-Gecko engines oscpu is absent and the check does not apply.

What a detector infers

navigator.oscpu is a property only Gecko still exposes — Chromium removed it and WebKit never had it — so this check is silent on every non-Firefox engine and reads nothing there to judge. On Firefox, oscpu and the operating-system token inside the user-agent string are generated from the same compile-time platform constant, which means they cannot name different OS families in a genuine build: a Windows Firefox reports a Windows oscpu, a Mac one a Mac oscpu, a Linux one a Linux oscpu. The one thing that breaks that agreement is a user-agent override that changes the UA string alone — an extension, or the general.useragent.override preference, or an anti-detect browser presenting a Windows identity — while oscpu keeps reporting the real host. That is two Gecko surfaces built from one constant provably disagreeing, and it is a true positive rather than a browser quirk. The comparison is made at OS-family granularity only, never version or architecture, and that restraint is what keeps it honest: Windows 11 reported as Windows 10 stays within the Windows family, Apple Silicon frozen as Intel Mac stays within the Mac family, and Firefox for Android — whose UA says Android while oscpu says Linux armv8l — is normalised into the Linux family before the comparison so it does not split. resistFingerprinting rewrites both surfaces coherently to Windows, or returns an empty oscpu, so it is not-applicable there too.

How to resolve it

oscpu and the UA OS token come from one compile-time constant in Gecko, so they cannot name different OS families in a real Firefox. A UA override has to change oscpu in step — or, better, run the browser on the OS it claims so neither needs rewriting.

Coherence over camouflage: why a plausible identity beats a hidden one

Read in the wild by

Camoufox issues

The tracker records UA-override spoofing on a Firefox base where a Gecko-only surface keeps reporting the real host — the shape this reads via oscpu.

daijro/camoufox #516 (UA override coherence)

daijro/camoufox#516

Every attribution traces to a published artifact. See the sources and their limits.

Nearby checks in Navigator identity

See all 26 checks in Navigator identity
Who builds this test

Clearcote is a browser built for fingerprint coherence

It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.

This audit takes no position on how Clearcote scores on Navigator identity checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.

See the other checks in Navigator identity — the family ua-oscpu-os-family-coherence belongs to.