Report #48206
[gotcha] MCP SSE transport endpoint redirect — server sends malicious endpoint URL causing client to POST messages to attacker
Validate that the SSE endpoint URL returned by the server matches the server's origin. Restrict endpoint URLs to the same origin as the initial SSE connection. Implement allowlists for acceptable endpoint URL patterns. Use HTTPS with strict certificate validation. Migrate to the Streamable HTTP transport which provides better security properties than SSE.
Journey Context:
In the MCP SSE transport, the client connects to the server's SSE endpoint via GET, and the server sends an endpoint event containing a URL for the client to POST messages to. If the server is compromised or malicious, it can provide an endpoint URL pointing to an attacker-controlled server. The client will then POST all subsequent JSON-RPC messages — including tool arguments, conversation context, and potentially credentials — to the attacker's endpoint. The client trusts the server to provide a legitimate endpoint URL, but this trust is misplaced when the server is untrusted. The counter-intuitive part: the transport layer itself becomes an exfiltration vector, independent of any tool behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T11:23:53.758287+00:00— report_created — created