Case · DiggingBeagle record

A deprecated MCP WebSocket transport trusted the browser origin

CVE-2026-59950 covered a deprecated MCP Python SDK WebSocket transport that did not validate Host or Origin, leaving local or LAN MCP servers exposed to cross-origin browser access when developers wired that transport themselves.

Deprecated MCP Python SDK WebSocket server transport before 1.28.1. FastMCP, stdio, SSE and Streamable HTTP are outside this advisory.

First seen
Jul 7, 2026
Case kind
vulnerability
AI role
AGAINST AI
Claims
3

Reconstruction

The vulnerability sits at the transport boundary rather than in a model. A browser page can initiate a WebSocket handshake to a local or LAN service. If the service does not validate where that browser request came from, the user's browser can become a bridge from hostile web content to a privileged MCP endpoint.

The advisory is narrower than a generic claim that MCP is browser-exploitable. The affected transport was deprecated, was not part of the MCP specification and required developers to wire it directly into an ASGI application. Applications using FastMCP did not reach this code path.

The patch in 1.28.1 adds the missing security handling. The broader lesson matches AutoJack and Windows-MCP: a service being local does not make the browser origin trustworthy.

Mechanism & boundary

  1. 01

    Victim browses hostile content

    A web origin can initiate connections from the victim browser.

    Boundary: internet page / browser

  2. 02

    Browser opens a WebSocket to local or LAN MCP service

    The affected transport accepts the handshake without Host or Origin validation.

    Boundary: browser / MCP transport

  3. 03

    Connected client reaches MCP capabilities

    What follows depends on the tools and authorization exposed by that server.

    Boundary: transport / tool authority

Timeline

  1. Jul 7, 2026

    GitHub advisory published

    report

    The project discloses the Host/Origin validation gap.

  2. Jul 16, 2026

    Reviewed advisory updated

    followup

    The GitHub Advisory Database record is updated.

Claims & evidence

reported findingsupported

The advisory says the affected WebSocket transport was deprecated, not part of the MCP specification and not reachable through FastMCP; stdio, SSE and Streamable HTTP were not affected by this advisory.

Evidence visuals

diagram

Browser to deprecated MCP WebSocket transport

  1. Hostile web page

    Runs in the victim browser

  2. Deprecated MCP WebSocket

    Affected transport lacks Host/Origin validation

  3. MCP capabilities

    Impact depends on exposed tools and authorization

  • Hostile web page Deprecated MCP WebSocket: WebSocket handshake
  • Deprecated MCP WebSocket MCP capabilities: MCP requests
Project-authored reconstruction from GHSA-vj7q-gjh5-988w. · Source: A deprecated MCP WebSocket transport trusted the browser origin

Implications

Local agent control planes need transport security that assumes hostile browser content. Host and Origin validation are controls, not substitutes for authentication and tool authorization.

Controls & mitigations

  • Upgrade to mcp 1.28.1 or later if the deprecated WebSocket transport is used.
  • Do not expose deprecated local transports merely because they bind to loopback or a LAN.
  • Use explicit authentication and authorization in addition to origin and host validation.

What remains unknown

  • The source set does not establish exploitation in the wild.

Cite this record

DiggingBeagle. “A deprecated MCP WebSocket transport trusted the browser origin.” First seen Jul 7, 2026. https://diggingbeagle.com/cases/a-deprecated-mcp-websocket-transport-trusted-the-browser-origin/

Citation guidance

Why this archive exists

The source matters after the headline fades.

DiggingBeagle is a non profit research project documenting AI security incidents, agent failures, vulnerabilities and AI-assisted operations. A case keeps its claims beside the sources that support, contest or limit them. Later updates stay visible, so a reader can see when the account changed.

We publish case reconstructions, dated reporting and analysis across records. Each has a different evidentiary role. About the project and our methodology explain how the work is reviewed.