Report #40653
[gotcha] MCP SSE transport is a secure standard real-time HTTP pattern
Migrate to the Streamable HTTP transport. If SSE must be used, implement origin validation, session binding, and CSRF tokens on the POST endpoint. Never accept arbitrary session IDs from untrusted sources. Reject cross-origin session endpoints.
Journey Context:
The original MCP SSE transport has the server advertise a POST endpoint for client messages and an SSE stream for server messages. This pattern is vulnerable to session fixation \(an attacker shares a session URL with a victim\) and CSRF \(an attacker POSTs messages to a known session\). The MCP specification introduced Streamable HTTP as a replacement, but many implementations and tutorials still default to SSE. The counter-intuitive part is that SSE is a well-known web pattern that feels standard and safe, but its use in MCP creates a trust boundary problem: the server controls the session endpoint, and a malicious or compromised server can exploit this to hijack or inject into client sessions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T22:42:29.781148+00:00— report_created — created