~/.config/opencode/.env with mode 600. While 600 restricts file permissions, the keys are still stored in plaintext on disk — any process running as the same user, or via privilege escalation, can read them. This is a credential exposure vulnerability.No Tenant Isolation (3, 10, 11, 13, 46, 64): The entire system operates without any tenant context. All agents share state files (~/.work/state.json, ~/.work/agent-lru.json), session configurations, and cache keys. In a multi-user or CI/CD environment, this allows cross-tenant data leakage and state corruption.Auto-Approve Shell Commands (5, 18, 20, 22): The orchestrator automatically approves shell permission prompts within ~15 seconds. This bypasses all user consent for command execution. An attacker who compromises the orchestrator or injects a malicious prompt can execute arbitrary shell commands without user awareness.Deny Policy Bypass via File Tools (6, 27, 31, 66, 70, 71): The Gemini deny policy only blocks destructive shell commands but explicitly instructs reviewers to use write_file/replace tools instead — which are auto-approved. This means write_file can overwrite any file in the workspace, including source code, configuration, and credentials. The system path protection only covers /etc, /usr, /var, etc., but misses /home, /root, ~/.ssh, and the entire workspace.OpenCode Agent Compromise (7, 38-44, 47-52): The OpenCode permission model grants unrestricted external_directory access, websearch, webfetch, and a wildcard bash allow-list with a catch-all "*": "ask". This allows an attacker to read arbitrary files, exfiltrate data via web requests, execute arbitrary commands (the allow-list includes echo, sed, awk, for, while which can all be used for file writes and command execution), and perform SSRF attacks.Unrestricted Web Search/Fetch (8, 39, 45, 49): OpenCode has websearch and webfetch set to "allow" with no restrictions. This enables data exfiltration to attacker-controlled servers, SSRF against internal services, and cost-inflating API calls./work command and orchestrator binaries have no authentication or authorization. Any user who can invoke Claude Code can trigger the full multi-LLM pipeline, including code review, git operations, and PR creation.No Session Management (17): LLM agent sessions have no timeout or token expiry. A session left open indefinitely can be hijacked or accumulate sensitive context.No Credential Sanitization (21, 42, 58, 62): Review outputs, logs, and agent sessions may capture API keys, tokens, and secrets from code context. There is no redaction or sanitization layer.Model Supply Chain Risk (15): HuggingFace model loading without pinned revision allows supply chain attacks via model repository compromise.False Confidence in Self-Review (24, 35, 43, 52, 71): The pre-merge checklist is self-reported by the same model that created the code. The deny policy and auto-edit mode claim safety but provide no actual protection against the tools they explicitly allow. The bash allowlist includes commands like echo and sed which can write arbitrary files.No Data Retention/Deletion Policy (26): Review findings and agent session logs may contain sensitive code context with no documented retention or deletion policy.Proxy Header Trust (30): The system trusts X-Forwarded-For headers without validation, enabling IP spoofing.Denial of Wallet (45, 48, 61): Unbounded web search/fetch permissions and no budget circuit breaker allow an attacker to inflate API costs by triggering expensive operations.No Containerization/Sandboxing (56, 60): Agents run directly on the host without container isolation. A compromised agent has full access to the user's filesystem and credentials./work)/work with a malicious task~/.config/opencode/.env (plaintext)external_directory access — reads ~/.ssh/id_rsa, ~/.aws/credentials, etc.webfetch — sends data to attacker-controlled serverbash with wildcard allow — executes curl or wget to exfiltraterm -rf, sudo, etc.write_file/replace insteadwrite_file is auto-approved by auto_edit mode/etc, /usr, /var, /boot, /sys, /proc, /root, /opt, /bin, /sbin, /lib~/.ssh/authorized_keys, ~/.bashrc, /home/user/.config/, or workspace files~/.work/state.json, ~/.work/agent-lru.json, ~/.config/agent-sessions/agents.jsonexternal_directory to specific paths, add URL allowlists for webfetch/websearch./work orchestrator and all agent endpoints.write_file/replace tools, not just shell commands. Extend path protection to cover /home, /root, ~/.ssh, and workspace directories.Consensus from 36 reviewer(s): Syringe, Entropy, Cipher, Blacklist, Tenant, Weights, Gatekeeper, Deadbolt, Sanitizer, Passkey, Specter, Harbor, Phantom, Gateway, Wallet, Egress, Tripwire, Vault, Lockdown, Vector, Warden, Mirage, Razor, Chaos, Provenance, Exploit, Siege, Fuse, Pedant, Infiltrator, Sentinel, Trace, Compliance, Supply, Recon, Prompt Total findings: 136 Severity breakdown: 10 critical, 65 high, 45 medium, 7 low, 9 info