Pesquisadores da Microsoft revelaram o AutoJack, uma cadeia de exploits que permite a uma única página web executar código arbitrário no computador de quem roda um agente de IA com navegação. A falha afeta o AutoGen Studio, interface do framework multiagente da própria Microsoft, e foi corrigida no código-fonte em 18 de junho de 2026.

O que é o AutoJack

O AutoJack é uma técnica de execução remota de código (RCE) descrita em detalhe pela equipa de investigação do Microsoft Defender em 18 de junho de 2026. O nome alude ao verbo inglês carjack (sequestrar carro): o atacante “sequestra” o agente de IA e usa-o como veículo de entrega para atravessar a fronteira de confiança do localhost e executar processos na máquina do desenvolvedor.

O alvo é o AutoGen Studio, a interface de prototipagem de código aberto do AutoGen, o framework multiagente criado pelo Microsoft Research. A ferramenta permite que desenvolvedores componham agentes, associem ferramentas — incluindo servidores baseados no Model Context Protocol (MCP) — e executem experimentos rápidos. A própria documentação do projeto alerta que se trata de um protótipo de pesquisa, com padrões ajustados para facilitar a iteração e não para implantação protegida.

A descoberta enquadra-se numa linha de investigação da Microsoft sobre riscos de execução em frameworks de agentes. Em posts anteriores, a empresa cobriu primitivas de RCE no Semantic Kernel, identificadas como CVE-2026-26030 e CVE-2026-25592. O AutoJack sobe um nível na pilha e foca-se na superfície de infraestrutura voltada ao desenvolvedor.

Como a cadeia de exploits funciona

A cadeia do AutoJack combina três fraquezas independentes na implementação do WebSocket MCP do AutoGen Studio, conforme documenta o blog de segurança da Microsoft. Nenhuma delas, isoladamente, consegue executar código; juntas, abrem um caminho completo de RCE.

A primeira fraqueza está na lista de permissão de origem (CWE-1385 — Validação de Origem Ausente em WebSockets). O socket MCP só aceita conexões cuja origem seja 127[.]0[.]0[.]1 ou localhost. Isso bloqueia um navegador comum apontado para um site malicioso externo. Mas um agente de navegação executado na mesma máquina — como o MultimodalWebSurfer — é, ele próprio, um processo do localhost. Qualquer JavaScript que ele renderize herda essa identidade e satisfaz a verificação de origem.

A segunda fraqueza reside no middleware de autenticação (CWE-306 — Autenticação Ausente para Função Crítica). O AutoGen Studio suporta vários modos de autenticação (nenhum, GitHub, MSAL, Firebase), mas o middleware exclui explicitamente os caminhos /api/mcp/* da verificação, assumindo que o handler do WebSocket faria a sua própria checagem. Essa checagem nunca foi implementada. O resultado: o socket MCP aceitava conexões sem autenticação, independentemente do modo configurado para o restante da aplicação.

A terceira fraqueza é a mais grave (CWE-78 — Neutralização Imprópria de Elementos Especiais em Comando do Sistema). O endpoint lia um parâmetro server_params na URL, decodificava um blob em base64, convertia para JSON em StdioServerParams e passava o comando e os argumentos diretamente para o stdio_client. Sem lista de permissão de executáveis, calc.exe, powershell.exe -enc … ou bash -c '…' eram todos aceitos como “servidores MCP”.

Para validar a cadeia, a Microsoft construiu um agente demonstração chamado “Web Content Summarizer”. Ao receber uma URL controlada pelo atacante, o MultimodalWebSurfer renderiza a página; O JavaScript dela abre um WebSocket para ws://localhost:8081/api/mcp/ws/ com o payload em base64; e o AutoGen Studio executa o comando sob a conta do desenvolvedor. Em segundos, o calc.exe aparece na tela — lançado pelo processo do AutoGen Studio, não pelo navegador.

Cronologia da descoberta e correção

O caso desenrolou-se num curto intervalo, com correção aplicada antes de qualquer lançamento público estável afetado:

  • Pré-maio de 2026 — O plugin MCP com o WebSocket vulnerável entra no ramo main do repositório do AutoGen Studio no GitHub.
  • Período de desenvolvimento — Dois pré-lançamentos no PyPI, 0.4.3.dev1 e 0.4.3.dev2, incluem a rota MCP vulnerável, conforme verificação independente do The Hacker News, que baixou e inspecionou ambos os pacotes.
  • Comunicação à MSRC — A equipa do Microsoft Defender reporta o comportamento ao Microsoft Security Response Center.
  • Commit b047730 (PR #7362) — Os mantenedores corrigem o ramo main: o handler do WebSocket deixa de ler server_params da URL; os parâmetros passam a ser armazenados no servidor, ligados a um UUID de sessão única; IDs desconhecidos são recusados com código de fechamento 4004; e as rotas MCP passam pelo caminho normal de autenticação.
  • 18 de junho de 2026 — A Microsoft publica a pesquisa completa no seu blog de segurança.
  • 19 de junho de 2026 — The Hacker News e CSO Online publicam análises; nenhuma exploração ativa é reportada.

Versões afetadas e exposição real

A extensão do impacto depende de qual versão do AutoGen Studio está instalada. A tabela abaixo resume o estado de cada pacote:

Pacote / Build Rota MCP vulnerável? Status
autogenstudio 0.4.2.2 (PyPI estável) Não — não há rota MCP Seguro
autogenstudio 0.4.3.dev1 (pré-lançamento) Sim — handler presente, sem autenticação Sem patch no PyPI
autogenstudio 0.4.3.dev2 (pré-lançamento) Sim — handler presente, sem autenticação Sem patch no PyPI
Ramo main (commit b047730 ou superior) Não — corrigido Seguro

A Microsoft inspecionou diretamente a versão estável publicada (0.4.2.2): o pacote não inclui o ficheiro autogenstudio/web/routes/mcp.py, não monta um roteador /api/mcp e uma busca recursiva nos 55 ficheiros Python não encontrou menção a StdioServerParams ou /api/mcp. Em suma, quem instala via pip install autogenstudio sem a flag --pre nunca recebeu a superfície vulnerável. Mas quem instalou um dos pré-lançamentos ficou exposto — e, até o momento, não há pacote PyPI corrigido para eles.

Como se proteger agora

A correção definitiva está no ramo main do GitHub, a partir do commit b047730. Quem depende de um pré-lançamento vulnerável deve compilar a partir desse commit. Até que exista um lançamento PyPI com a correção, a recomendação da Microsoft é eliminar as condições que a cadeia precisa para funcionar.

A regra central: nunca execute o AutoGen Studio na mesma máquina que um agente de navegação ou de execução de código que toque conteúdo não confiável. A cadeia só funciona quando ambos compartilham o mesmo localhost. Se precisarem de coexistir, isole-os em contêineres ou máquinas virtuais separadas e execute o AutoGen Studio sob uma conta de baixo privilégio. Configure um proxy reverso autenticado que force autenticação em todos os caminhos, incluindo WebSocket e /api/*, e adicione uma regra de firewall que bloqueie todo o tráfego não loopback para a porta 8081 (padrão).

A Microsoft sublinha que o padrão é mais amplo do que um único bug. Qualquer framework de agente que combine um serviço local com poder excessivo, uma verificação de localhost tratada como segurança e um agente que abre páginas externas pode reproduzir o mesmo formato de ataque. A lição para defensores: autenticar o plano de controle, manter a execução de processos atrás de uma lista de permissão e dar ao agente uma identidade que não seja a sessão do próprio desenvolvedor.

Fontes