cloudflare / cloudflare/claude-managed-agents

Security: fail closed on unauthenticated dashboard/API routes

Open
#7 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.