[domains-audit] Claude default domains include telemetry, package mirrors, PKI, and Playwright hosts
- Dominant language
- Go
- Stars
- 5.1k
- Forks
- 541
- Avg merge
- 5h 46m
- Merged PRs (30d)
- 760
Description
### Summary
`ClaudeDefaultDomains` currently includes 51 domains that are far broader than a minimal gateway/GitHub transport baseline. The set contains vendor telemetry and feature-flag hosts (`sentry.io`, `statsig.anthropic.com`), OS/package mirror endpoints (`archive.ubuntu.com`, `api.snapcraft.io`, `ppa.launchpad.net`, `packagecloud.io`), PKI hosts (`crl.geotrust.com`, `ocsp.digicert.com`), and Playwright download/CDN endpoints (`cdn.playwright.dev`, `playwright.download.prss.microsoft.com`). Because agents run behind the AWF/MCP gateway, these should be opt-in through dedicated ecosystem or feature sets rather than unconditional engine defaults.
### Affected sets
| Set | Domain | Bucket | File:line |
|---|---|---|---|
| `ClaudeDefaultDomains` | `sentry.io` | vendor-telemetry | `pkg/workflow/data/ecosystem_domains.json:323` |
| `ClaudeDefaultDomains` | `statsig.anthropic.com` | vendor-telemetry | `pkg/workflow/data/ecosystem_domains.json:324` |
| `ClaudeDefaultDomains` | `archive.ubuntu.com` | os-packages | `pkg/workflow/data/ecosystem_domains.json:281` |
| `ClaudeDefaultDomains` | `cdn.playwright.dev` | tooling-download | `pkg/workflow/data/ecosystem_domains.json:283` |
| `ClaudeDefaultDomains` | `crl.geotrust.com` | pki | `pkg/workflow/data/ecosystem_domains.json:285` |
| `ClaudeDefaultDomains` | `ghcr.io` | unclear | `pkg/workflow/data/ecosystem_domains.json:295` |
### Why this is suspicious
The shared-baseline comments in `pkg/workflow/domains.go:116-123` describe engine defaults as a gateway/GitHub transport baseline. Claude’s list is much broader and overlaps ecosystem sets directly: 34 domains overlap `defaults`, 8 overlap `github`, 2 overlap `playwright`, and 1 overlaps `containers`. Those are the exact kinds of domains that should be gated behind explicit `network.allowed` or runtime opt-in rather than included in the engine default allow-list.
### Suggested change
1. Trim `ClaudeDefaultDomains` back to the gateway/GitHub/model-API baseline, leaving vendor telemetry, package mirrors, PKI, and Playwright endpoints to dedicated opt-in sets.
2. Keep only the minimal transport hosts needed for Claude Code operation (for example `host.docker.internal`, `api.github.com`, and `api.anthropic.com`), and let `defaults`, `github`, `playwright`, and `containers` remain explicit opt-ins.
3. Add a regression test that asserts these categories are absent from `ClaudeDefaultDomains` unless the workflow explicitly enables them.
### Verification
Closest coverage currently lives in `pkg/workflow/domains_package_registry_test.go` and `pkg/workflow/http_mcp_domains_test.go`: package-registry overlap is already guarded, and Playwright domains are only expected when the Playwright tool is configured. There is no equivalent guard for Claude’s telemetry/package-mirror/PKI entries, so this issue should be covered by a new regression test that asserts those domains are absent from `ClaudeDefaultDomains` unless explicitly opted in.
> [!WARNING]
>
> Firewall blocked 2 domains
>
> The following domains were blocked by the firewall during workflow execution:
>
> - `ab.chatgpt.com`
> - `proxy.golang.org`
>
> To allow these domains, add them to the `network.allowed` list in your workflow frontmatter:
>
> ```yaml
> network:
> allowed:
> - defaults
> - "ab.chatgpt.com"
> - "proxy.golang.org"
> ```
>
> See [Network Configuration](https://github.github.com/gh-aw/reference/network/) for more information.
>
>
> Generated by [🌐 Weekly Network Domain Set Audit](https://github.com/github/gh-aw/actions/runs/33379192175) · codex · mai10 · 18.7 AIC · ⌖ 0.428 AIC · ⊞ 16.5K · [◷](https://github.com/search?q=repo%3Agithub%2Fgh-aw+is%3Aissue+%22gh-aw-workflow-call-id%3A+github%2Fgh-aw%2Fweekly-network-domains-audit%22&type=issues)
Contributor guide
Research direction
Start with ClaudeDefaultDomains in pkg/workflow/data/ecosystem_domains.json and the shared-baseline comments in pkg/workflow/domains.go:116-123. Read pkg/workflow/domains_package_registry_test.go and pkg/workflow/http_mcp_domains_test.go, then add regression coverage for the listed telemetry, package, PKI, and Playwright domains. Done means those domains are absent from ClaudeDefaultDomains unless explicitly enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking, security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100