Case · DiggingBeagle record

AutoJack crossed from hostile web content into a local MCP control plane

Microsoft demonstrated a chain in an AutoGen Studio development surface where a browsing agent could render hostile web content that reached an unauthenticated local MCP WebSocket and spawned host processes.

The affected AutoGen Studio development surface described by Microsoft. The vulnerable MCP WebSocket path was fixed in upstream main and, according to Microsoft, was never included in a PyPI release.

First seen
Jun 18, 2026
Case kind
vulnerability
AI role
AGAINST AI
Claims
3

Reconstruction

AutoJack combined three individually familiar weaknesses. The MCP WebSocket accepted localhost origins, the main authentication middleware skipped MCP paths, and a server-parameter field could become a command line for an MCP stdio server.

A normal remote browser would fail the localhost-origin check. A browsing agent running on the developer machine changed that assumption because hostile content could be rendered by a local process. The web page could then open the MCP WebSocket, pass attacker-controlled server parameters and cause AutoGen Studio to spawn a process under the developer account.

Microsoft says the issue was found and fixed during development before the affected surface reached a PyPI release. The value of the case is therefore structural: it shows how an agent can become a confused deputy across a boundary that was considered local.

Mechanism & boundary

  1. 01

    Agent browses attacker-controlled page

    A local browsing tool renders hostile web content on the developer workstation.

    Boundary: open web / local agent

  2. 02

    Page reaches localhost MCP WebSocket

    The local agent defeats the assumption that a localhost origin implies a trusted human browser.

    Boundary: web content / loopback control plane

  3. 03

    MCP path bypasses application authentication

    The WebSocket endpoint accepts the connection without its own authentication.

    Boundary: application auth / MCP endpoint

  4. 04

    Attacker-controlled server parameters become a command

    AutoGen Studio passes decoded command and argument values to the stdio client.

    Boundary: MCP request / host process

Timeline

  1. Mar 11, 2026

    Upstream AutoGen commit hardens the MCP WebSocket surface

    mitigation

    Microsoft cites upstream commit b047730 as the hardening change.

  2. Jun 18, 2026

    Microsoft publishes AutoJack research

    report

    The technical disclosure explains the three-part chain and mitigations.

Claims & evidence

reported findingsupported

Microsoft reports that untrusted web content rendered by a browsing agent could reach AutoGen Studio's local MCP WebSocket and spawn arbitrary host processes.

reported findingsupported

The chain combined a localhost origin assumption, an MCP authentication gap and attacker-controlled server parameters that were passed to stdio execution.

reported findingsupported

Microsoft states that the affected MCP WebSocket surface was fixed in upstream development and was never included in a PyPI release.

Scope: Microsoft's disclosure about the specific AutoJack chain.

Evidence visuals

diagram

AutoJack local control-plane chain

  1. Hostile web page

    Attacker-controlled content

  2. Browsing agent

    Renders page locally

  3. Local MCP WebSocket

    Control plane lacks an independent trust decision

  4. Stdio server parameters

    Command and arguments are attacker-influenced

  5. Host process

    Process starts under developer account

  • Hostile web page Browsing agent: rendered content
  • Browsing agent Local MCP WebSocket: local-origin access
  • Local MCP WebSocket Stdio server parameters: server params
  • Stdio server parameters Host process: spawn
Project-authored reconstruction from Microsoft's AutoJack disclosure. · Source: AutoJack crossed from hostile web content into a local MCP control plane

Implications

Localhost should not be treated as authenticated simply because a service is not internet-facing. Privileged control planes need explicit authentication and authorization, dangerous executable parameters need allowlists, and browsing agents should run under identities that do not inherit the developer's local authority.

Controls & mitigations

  • Authenticate every local control-plane endpoint, including WebSockets.
  • Do not rely on localhost or Origin checks as the sole trust decision for agent-accessible services.
  • Allowlist executable MCP server commands and arguments.
  • Run browsing agents and developer control planes under separated identities and sandboxes.
  • Place sensitive local services behind an authenticated reverse proxy or equivalent gate.

What remains unknown

  • The cited disclosure does not claim that the specific chain was exploited in real deployments.
  • The affected development surface did not ship through PyPI according to Microsoft.

Cite this record

DiggingBeagle. “AutoJack crossed from hostile web content into a local MCP control plane.” First seen Jun 18, 2026. https://diggingbeagle.com/cases/autojack-crossed-from-hostile-web-content-into-a-local-mcp-control-plane/

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.