groundy
infrastructure & runtime

Cloudflare Turnstile Now Fingerprints WebGL: The Privacy CAPTCHA Tradeoff

A researcher found Cloudflare Turnstile now demands fingerprintable WebGL to pass challenges, contradicting its privacy policy that lists only IP, TLS, and User-Agent signals.

7 min · · · 6 sources ↓

Cloudflare Turnstile was the CAPTCHA replacement operators adopted specifically to avoid fingerprinting their users. A researcher’s finding that Turnstile now requires fingerprintable WebGL to pass challenges, and that Cloudflare’s own privacy documentation lists nothing of the sort, means those operators may be shipping the tracking surface they chose to drop.

What Changed: The WebGL Finding

Around late May 2026, developer Haelwenn documented that Cloudflare Turnstile began looping indefinitely on WebKitGTK browsers. On Turnstile’s own test page, the failure reason read: “WebGL renderer info is spoofed.” The researcher’s writeup identifies fingerprintable WebGL as the specific cause.

Turnstile’s challenge page states the requirement in plain text: “Turnstile uses browser fingerprinting to verify you’re human. Privacy tools that block or randomize fingerprinting make your browser look like a bot trying to hide its identity.”

WebKitGTK browsers block WebGL fingerprinting at the engine level. Apple’s Safari, which shares the same WebKit codebase, appears to be exempted from the check. WebKitGTK is not. The practical effect: every Linux browser built on that engine, including GNOME Web (Epiphany) and several lightweight embeddable browsers, fails Turnstile challenges and cannot access sites behind it.

As of late May 2026, Firefox 145.0 passes Turnstile under default strict settings, but only because of a known gap in Firefox’s WebGL implementation (Bugzilla #1916271): Gecko reveals sanitized GPU characteristics rather than returning the hardcoded strings WebKit and Blink produce. Enabling privacy.resistfingerprinting triggers a “Canvas Randomization Detected” flag from Turnstile, but Firefox still passes. Whether that remains the case is an open question.

As of May 2026, Cromite, a privacy-focused Chromium fork for Android, has persistent Turnstile failures. The project’s maintainer reports that the only resolution Cloudflare offers is joining its Browser Developer program, which requires signing an NDA. The maintainer declined.

The Documentation Gap

This is where the story shifts from a browser-compatibility complaint to an operator problem.

Cloudflare’s Turnstile documentation describes challenges as “proof-of-work (computational puzzles), proof-of-space, probing for web APIs, and various other challenges for detecting browser-quirks and human behavior.” It does not mention WebGL or canvas fingerprinting.

The Turnstile Privacy Addendum, last updated June 18, 2025, calls Turnstile a “pro-privacy website security tool” that processes “minimal Signals.” It lists exactly four: client IP address, TLS fingerprint, User-Agent header, and the sitekey with its associated origin. WebGL, canvas, AudioContext, font enumeration, screen properties, navigator properties, and timezone/locale data, the full fingerprinting surface that a technical analysis of Turnstile’s 2026 behavior identifies as collected signals, are absent from that list.

The gap between what the privacy policy enumerates and what the challenge actually probes is the core claim here. Cloudflare has not confirmed or denied the WebGL requirement. The documentation discrepancy is the story.

Which Browsers Break

The affected browsers share one trait: they block or randomize the fingerprinting signals Turnstile requires.

  • WebKitGTK browsers (GNOME Web, Luakit, Nyxt, others): blocked outright. The engine-level WebGL fingerprinting protection triggers the “spoofed” detection.
  • Cromite and similar Chromium forks: blocked, with no resolution path outside an NDA-gated program.
  • Tor Browser: would presumably fail the same checks, though the researcher did not test it explicitly.
  • Firefox with strict privacy settings: currently passes, but only due to a fingerprinting implementation quirk rather than a deliberate Cloudflare exemption.

As of late May 2026, Safari is not affected despite sharing WebKit’s fingerprinting protections. The researcher infers that Cloudflare has exempted Safari by name while applying the check to WebKitGTK.

Why Operators Should Care

Cloudflare is used by approximately 21.3% of all websites according to W3Techs as of January 2026. Turnstile’s detection behavior is not a niche concern. It is a gating function on a significant portion of the web.

The Hacker News discussion reveals the operator split clearly. Operators in the thread running PHP and database stacks report AI scrapers driving traffic from tens of thousands of requests per day to 400,000 to 3,000,000. For these operators, Cloudflare’s bot defense is load protection, and fingerprinting is a tolerable cost. Operators of optimized static sites on cheap VPSes report no scraper issues and refuse to adopt Cloudflare at all.

The operators caught in the middle are the ones who chose Turnstile because it was marketed as the privacy-preserving alternative to Google’s reCAPTCHA. The value proposition was explicit: drop fingerprinting, keep bot protection. If Turnstile now requires fingerprinting, the proposition is broken.

The Bot-Defense Tension

The broader context is unkind to every party involved.

AI scrapers have made bot traffic an existential load problem for many sites. The HN thread includes operators describing scraper traffic increases of 10x to 100x over the past year. Proof-of-work challenges, which Turnstile also uses, have their own costs: CPU time on the client device, battery drain on mobile, and a computational arms race that favors well-resourced bot operators.

A technical analysis of Turnstile’s 2026 detection behavior notes that the system added proof-of-work challenges, Apple Private Access Token integration, challenge chaining, and ML-based scoring this year. Fingerprinting is one component of a larger detection system, not the whole mechanism.

The tension is structural. Effective bot defense requires signals that privacy tools deliberately obscure. Privacy tools obscure those signals because they enable tracking. No technical solution resolves this contradiction. There are only tradeoffs, and the current tradeoff is being made without transparent disclosure of its cost.

What Operators Can Do

If you run Turnstile, audit what your CAPTCHA is doing to your users.

  1. Test with a hardened browser. Open your site in a WebKitGTK browser or a privacy-focused Chromium fork. If Turnstile blocks it, you are shipping fingerprinting.
  2. Re-read the privacy policy you wrote when you adopted Turnstile. If it claims your CAPTCHA vendor collects only minimal signals, verify that claim against the challenge page’s own acknowledgment of fingerprinting.
  3. Evaluate alternatives. Proof-of-work CAPTCHAs avoid fingerprinting entirely but impose client-side CPU cost. Rate limiting at the origin, if your infrastructure supports it, may be sufficient when scraper load is manageable.
  4. If you stay with Turnstile, update your privacy documentation to reflect the signals the challenge actually collects, not just the signals the vendor’s privacy addendum enumerates.

The problem is not that fingerprinting-based bot defense exists. The problem is that it exists behind a privacy policy that says it does not, gating access to sites whose operators did not know they were deploying it.

Frequently Asked Questions

Does Google reCAPTCHA have the same documentation gap?

No. Google’s reCAPTCHA v3 documentation has always been explicit about collecting browser fingerprinting signals as part of its risk scoring. Turnstile’s adoption advantage was the promise of “minimal Signals” limited to four data points. The discrepancy is specific to Turnstile: a vendor that built adoption on a privacy promise now appears to collect signals its own privacy addendum does not list.

Could Apple Private Access Tokens replace the fingerprinting requirement?

Apple Private Access Tokens, which Turnstile integrated in 2026, let iCloud-attested devices prove humanity through hardware attestation rather than browser probing. This is likely why Safari passes despite sharing WebKit’s WebGL protections with WebKitGTK: Safari takes a PAT verification path that skips the fingerprinting gate entirely. The limitation is that PATs are exclusive to Apple’s ecosystem and require iCloud, so they cannot replace fingerprinting for Windows, Linux, or Android users. A cross-platform equivalent would require an attestation standard no one has shipped yet.

Does the WebGL check affect Cloudflare’s Bot Management or WAF products too?

The fingerprinting requirement has been documented only against Turnstile, Cloudflare’s CAPTCHA widget. Bot Management and WAF use separate detection pipelines that may draw on overlapping signals, but no independent analysis has confirmed whether those products also require fingerprintable WebGL. Operators running Turnstile alongside other Cloudflare security products should test each one independently rather than assuming consistent behavior across the stack.

How do I test whether my Turnstile-protected site blocks hardened browsers?

Open your site in GNOME Web (Epiphany) on Linux and attempt the challenge. If it loops or displays “WebGL renderer info is spoofed,” your site is inaccessible to users on browsers that block fingerprinting signals. For a second data point, enable privacy.resistfingerprinting in Firefox’s about:config. Turnstile flags “Canvas Randomization Detected” but currently still passes, which tells you whether your exposure is limited to browsers that block signals outright versus those that randomize them.

sources · 6 cited

  1. Cloudflare Turnstile requiring fingerprintable WebGL primary accessed 2026-05-31
  2. Cloudflare Turnstile requiring fingerprintable WebGL (HN discussion) community accessed 2026-05-31
  3. Overview · Cloudflare Turnstile docs vendor accessed 2026-05-31
  4. Cloudflare's Privacy Policy (Turnstile Addendum) vendor accessed 2026-05-31
  5. Bypassing Cloudflare Turnstile: What Changed in 2026 analysis accessed 2026-05-31
  6. Cloudflare primary accessed 2026-05-31