Report #436
[tooling] Cloudflare Turnstile token validation fails or challenge is bypassed incorrectly in automated flows
Validate every Turnstile token server-side by POSTing to https://challenges.cloudflare.com/turnstile/v0/siteverify with your secret key, the token, and the client remote IP. Only proceed if response.success is true and optionally check hostname, action, and cdata. Treat tokens as single-use and refresh after 5 minutes.
Journey Context:
Teams often rely on the client-side widget callback as proof of success, but Cloudflare explicitly says the token can be forged, expires in 300 seconds, and is one-time-use. The Siteverify API is the control plane. In automation, capture cf-turnstile-response and verify it on the backend before any protected action; do not attempt to click or solve the widget DOM in headless browsers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T07:55:42.296180+00:00— report_created — created