Raxx · internal docs

internal · gated

RCA — www.getraxx.com CF Access gate bypass

Incident ID: 2026-05-11-www-getraxx-access-bypass Date: 2026-05-11 Severity: SEV-2 (pre-launch gate bypass — no production customers, but site is publicly readable) Duration: ~4h (10:45 UTC detection → 22:00 UTC fix deployed via workflow) Blast radius: www.getraxx.com served CF Pages content publicly (HTTP 200), bypassing the CF Zero Trust Access gate. Search crawlers or anyone with the www URL could read pre-launch site content. getraxx.com (apex) was correctly gated throughout. Author: sre-agent

Summary

www.getraxx.com returned HTTP 200 (serving CF Pages content directly) instead of being redirected to the CF Access-gated apex getraxx.com. The operator noticed via curl test. The root cause was a combination of two architectural mismatches: (1) www.getraxx.com was registered as a CF Pages custom domain, which causes CF Pages to bypass zone-level Dynamic Redirect rules; and (2) the CF Pages _redirects file contained an unsupported cross-domain redirect rule that CF Pages silently ignores. The fix removes www.getraxx.com from CF Pages custom domains so the pre-existing zone redirect rule (www → apex) fires correctly.

Timeline (all times UTC)

Impact

What went well

What didn't go well

Root cause analysis

Detection

Resolution

What was changed:

  1. deploy-getraxx.yml — three fixes: - Remove the "Ensure CF Pages custom domain (www.getraxx.com)" step. - Add a "Remove www.getraxx.com CF Pages custom domain" step (DELETE API call). - Replace the broken _redirects step with a note explaining why it doesn't work. - Replace the hardcoded _headers step with a cp from frontend/getraxx-landing/public/_headers (preserves pre-launch noindex). - Update www DNS CNAME to point to getraxx.com (apex) instead of getraxx.pages.dev.

  2. terraform/modules/cf-access-getraxx/main.tf — comment added to cloudflare_ruleset.www_to_apex_redirect documenting the import requirement and the architectural constraint.

Validation: - Post-workflow: curl -I https://www.getraxx.com/ returns HTTP/2 301 location: https://getraxx.com/. - Following redirect: curl -I https://getraxx.com/ returns HTTP/2 302 location: https://moosequest.cloudflareaccess.com/.... - x-robots-tag: noindex, nofollow, noarchive, nosnippet verified on apex (once authenticated).

Action items

# Action Owner Due Issue
1 Add post-deploy curl verification to deploy-getraxx.yml asserting www returns 301 (not 200) sre-agent 2026-05-14 #1651
2 Import cloudflare_ruleset.www_to_apex_redirect into Terraform state using CF_ACCESS_MGMT token (needs Zero Trust scope) operator 2026-05-14 #1652
3 Add CF Pages architecture note to docs/ops/runbooks/cloudflare-tokens.md: "CF Pages custom domains bypass zone Dynamic Redirect rules — never register a domain as both a CF Pages custom domain and a redirect target" sre-agent 2026-05-14 #1653
4 Update launch-day removal runbook to include www DNS CNAME change verification sre-agent 2026-05-14 (this PR)

References