Case · DiggingBeagle record

A deprecated MCP WebSocket transport trusted the browser origin

A deprecated MCP WebSocket helper could let a hostile page reach a local agent server because it did not check Host or Origin. Version 1.28.1 adds the checks, but leaves them disabled unless the application supplies security settings.

Scope

Applications explicitly using the deprecated MCP Python SDK WebSocket helper: validation was absent before 1.28.1 and remains disabled after upgrading when security_settings is omitted. FastMCP, stdio, SSE and Streamable HTTP are outside this advisory.

Assessment profile

Assessment method
Exploitation
not established
Evidence
Grade B
Remediation
mitigation available
AI role
AGAINST AI
Basis and provenance

Maintainer advisory checked on 1 October 2026. The fix requires application configuration, so this record does not label every upgraded deployment fixed. No in-the-wild exploitation or realized impact was established.

Assessed Oct 1, 2026 using diggingbeagle.assessment/1.

At a glance

Mechanism and trust 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
    Event type unspecified

    GitHub advisory published

    The project discloses the Host/Origin validation gap.

  2. Jul 16, 2026
    Event type unspecified

    Reviewed advisory updated

    The GitHub Advisory Database record is updated.

Claims & evidence

CLM-PATCHVersion 1.28.1 adds optional Host/Origin validation for the deprecated WebSocket helper; the advisory lists it as patched but says applications must explicitly enable the settings.supported

Basis: reported finding · active

Material revision: Oct 1, 2026

Link to claim
CLM-SCOPEThe 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.supported

Basis: reported finding · active

Link to claim
CLM-OPT-INThe advisory says version 1.28.1 leaves WebSocket Host/Origin validation disabled when security_settings is omitted; applications retaining the helper must configure TransportSecuritySettings explicitly.supported

Basis: reported finding

Material revision: Oct 1, 2026

Link to claim
CLM-ORIGINBefore 1.28.1, the MCP Python SDK deprecated WebSocket server transport accepted handshakes without Host or Origin validation.supported

Basis: reported finding · active

Link to claim

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

Comparison and practical conclusion

AutoJack also connected hostile web content with a local MCP control plane, but added an authentication bypass and server-parameter-to-process execution path. This advisory does not establish that additional chain. The shared lesson is narrower: a local endpoint still needs a decision about the caller and the requested authority.

The MCP transport specification separates transport validation from authentication. Apply its requirements to the specified transport rather than retroactively treating the deprecated WebSocket helper as a standard MCP transport. A future deployment that combines unchecked browser access with more powerful tools could increase the consequences; that is a conditional architecture risk, not a reported new exploit.

Controls and mitigations

  • Maintainer remediation: upgrade to 1.28.1 or a suitable supported version and explicitly supply TransportSecuritySettings with DNS-rebinding protection enabled and deployment-specific allowed hosts and origins; upgrading alone is insufficient.
  • Maintainer direction: migrate away from the deprecated WebSocket helper where possible. Verify the security behavior of the replacement transport instead of assuming all transport defaults are identical.
  • DiggingBeagle control recommendation: test untrusted Origin and Host values, enforce client authentication, and authorize individual tools separately. These are review recommendations, not an independently reproduced fix.

Unknowns and contradictions

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

Sources and citation

Material revision history

  1. Sep 16, 2026 · Published version · first publication · revision 2
  2. Oct 1, 2026 · Published version · material revision · revision 65Public fields changed: assessment_profile, claims, implications, mitigations, narrative, references, scope, summary