Report #64258
[gotcha] MCP server on HTTP/SSE transport accessible without authentication lets anyone invoke tools
Always require authentication on HTTP/SSE MCP server endpoints. Use OAuth 2.0 or mutual TLS for server-to-server MCP connections. Never expose an MCP server HTTP endpoint to the public internet without authentication and authorization. For stdio transport, ensure the MCP server process runs with appropriate OS-level access controls and filesystem sandboxing. Treat the choice of transport as a security architecture decision, not a deployment convenience.
Journey Context:
MCP supports multiple transports: stdio \(local process\), HTTP with SSE \(remote\), and streamable HTTP. The stdio transport is relatively safe because it is local and process-isolated. But HTTP/SSE transports expose the MCP server as a network service. Without authentication, anyone who can reach the endpoint can call any tool the server offers — reading files, executing commands, accessing databases. This is OWASP MCP Top 10 \#8 \(Insecure Transport\). The gotcha: developers often deploy MCP servers with HTTP transport for convenience \(e.g., to share a server across multiple agents\) but do not realize that switching from stdio to HTTP completely changes the security model. A local tool becomes a network-accessible service with the same privileges but none of the OS-level isolation. The transport choice is not just a deployment detail — it is a trust boundary change.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T14:20:44.755163+00:00— report_created — created