cloudflare / cloudflare/claude-managed-agents
Security: fail closed on unauthenticated dashboard/API routes
- Dominant language
- TypeScript
- Stars
- 274
- Forks
- 42
- PR merge metrics
- No merged PRs in 30d
Description
## Security boundary
The Worker hosts an operator control plane. If the Worker is reachable without a Cloudflare Access policy, public HTTP/WebSocket traffic can reach privileged dashboard routes before any in-repository authentication check runs.
This is security-sensitive because the protected surface includes:
- `/api/*` control-plane routes for secrets, egress policies, environment/session control, and Anthropic proxy operations
- `/ws/terminal`, which opens a terminal path for known MicroVM sessions
- dashboard/static/OpenAPI routes that should only be available after the Access gate
The current docs recommend putting the Worker behind Cloudflare Access, but the Worker runtime does not validate that Access actually authenticated the request. That means a missing or misconfigured Access policy leaves the deployment fail-open.
## Expected behavior
The Worker should fail closed for dashboard/API/OpenAPI/static asset/terminal requests unless it can validate `Cf-Access-Jwt-Assertion` against the configured Cloudflare Access team domain, issuer, and application AUD.
`/webhooks` should remain the intentional unauthenticated HTTP bypass because Anthropic calls it directly; that route should continue relying on the existing Standard Webhooks HMAC verification.
Contributor guide
Assessment
This issue has not been assessed yet.