Context
Security audit (2026-02-15) found that zeph-mcp/src/client.rs:38-69 spawns child processes from user config without command validation. Also lacks SSRF protection for URL-based MCP connections.
Severity
Low — config is admin-controlled, not externally modifiable.
Tasks
-
Documentation: Add docs/src/security/mcp.md covering:
- Safe MCP server configuration
- SSRF risks with URL-based connections
- Recommended command allowlists
-
Optional validation: Consider command allowlist for MCP binaries:
const ALLOWED_MCP_BINARIES: &[&str] = &["node", "python", "python3", "npx"];
- SSRF protection for URL-based connections:
- Block private IP ranges (10.x, 172.16-31.x, 192.168.x, 127.x)
- Block link-local and metadata endpoints (169.254.x)
Acceptance criteria