Perform a comprehensive security review of the Chatto codebase. Launch multiple exploration agents in parallel to examine different security aspects, then have an adversarial reviewer verify and challenge the findings.
69
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Perform a comprehensive, multi-agent security review of the Chatto codebase. Use the methodology below — it is designed to maximize coverage and minimize false positives.
Launch 5 agents in parallel using the Agent tool (subagent_type: general-purpose), each focused on a different attack surface. Each agent should:
Focus: session management, token handling, password hashing, login/register/OAuth flows, authorization checks in ConnectRPC handlers and core operation models, IDOR vulnerabilities, privilege escalation, admin access control, server/room membership enforcement.
Key files: cli/internal/http_server/auth.go, cli/internal/connectapi/, cli/internal/core/*_model.go, cli/internal/core/can.go, cli/internal/core/permissions.go
Focus: ConnectRPC/protobuf request validation, realtime websocket frame validation, XSS via stored data, path traversal, SSRF, command injection, deserialization issues, missing input validation on public operations.
Key files: proto/chatto/api/v1/*.proto, cli/internal/connectapi/, cli/internal/http_server/realtime.go, cli/internal/core/validation.go, cli/cmd/backup.go, cli/internal/core/linkpreview/
Focus: encryption algorithm choices, nonce handling, key generation/storage/rotation, password hashing, secrets in code, transport security (TLS config), backup encryption, session token entropy, sensitive data in logs.
Key files: cli/internal/encryption/, cli/internal/core/users.go, cli/cmd/keys.go, cli/cmd/backup.go, cli/cmd/init.go, cli/internal/http_server/server.go
Focus: CORS, rate limiting, realtime websocket security, cookie flags, HTTP security headers (CSP, HSTS), Docker/K8s security, file upload limits, DoS vectors (missing timeouts, unbounded operations), error message leakage.
Key files: cli/internal/http_server/server.go, cli/internal/http_server/cors.go, cli/internal/http_server/frontend.go, cli/internal/http_server/health.go, docker/Dockerfile.goreleaser, examples/k8s/
Focus: XSS via {@html}, auth token storage, CSRF protection, sensitive data in client bundle, open redirects, CSP compatibility, WebSocket message validation, file upload client-side validation, service worker security.
Key files: apps/frontend/src/lib/markdown.ts, apps/frontend/src/lib/components/MessageContent.svelte, apps/frontend/src/lib/state/server/serverConnection.svelte.ts, apps/frontend/src/lib/state/server/eventBus.svelte.ts, apps/frontend/src/app.html, apps/frontend/src/service-worker.ts
After all 5 agents complete, compile their findings into a single deduplicated report at .context/security-review-findings.md. Group by severity, note which findings were independently reported by multiple agents (higher confidence).
Launch 1 final agent (subagent_type: general-purpose) that is deeply skeptical and does NOT trust the other agents' work. This agent must:
.context/security-review-findings.mdSave the verified, adversarially-reviewed report to .context/security-review-final.md with:
These are intentional design choices, not vulnerabilities:
CreateUser mutation is unauthenticated (self-registration)65f65c3
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.