TL;DR
- Um servidor MCP não é um plugin, é um detentor de credenciais que conversa com o seu agente a cada chamada: as descrições das ferramentas e os resultados delas entram no contexto do modelo com o mesmo peso que as suas próprias instruções.
- O GhostSplice mostra que o alinhamento do modelo não é uma defesa: uma ordem de roubo dada em um único bloco é recusada 100% das vezes por GPT-4o, Gemini 2.0 Flash e Llama 3.3; a mesma ordem dividida entre a descrição de uma ferramenta e o resultado de uma ferramenta é obedecida 100% das vezes.
- O cliente importa tanto quanto o modelo: o Claude Haiku 4.5 recusa tudo pela API e cede em 100% no teste de três fragmentos rodado dentro do Cursor.
- A cadeia de suprimentos já é um fio energizado: a CVE-2025-6514 atingiu o mcp-remote, um proxy OAuth baixado mais de 400,000 vezes, com uma injeção de comando disparada por um servidor malicioso.
- A detecção em nível de protocolo da Cloudflare e o WriteGuard são os primeiros controles corporativos de verdade, mas exigem Zero Trust com inspeção TLS, e um servidor stdio local nunca aparece neles.
- Para um desenvolvedor solo ou uma equipe pequena, a defesa é manual: inventário, procedência, tokens com escopo restrito, uma aprovação humana em toda escrita e tratar a saída das ferramentas como dado.
O que dizem as fontes
Um servidor MCP faz a ponte entre o seu agente e um serviço externo, então guarda no seu lugar o que precisa para se conectar: tokens, chaves de API, credenciais de conta de serviço. A análise de vazamentos publicada em 17 de agosto parte de uma constatação direta: os tokens são colados direto em strings de configuração e ficam legíveis em disco, a um commit apressado de um repositório Git s2. A mesma análise lista o excesso de permissões como o segundo buraco: permissões amplas concedidas durante o desenvolvimento vão para produção sem mudança, de modo que um único comprometimento expõe muito mais do que o uso real justificava s2. O quarto buraco é a prompt injection: um agente lê tudo o que suas ferramentas trazem de volta, uma página web, um ticket, um documento interno, e uma instrução escondida nesse conteúdo é seguida como se viesse de você, usando ferramentas legítimas para expor justamente o que deveriam proteger s2.
O terceiro buraco é a cadeia de suprimentos. A CVE-2025-6514 afetava o mcp-remote, um proxy OAuth baixado mais de 400,000 vezes: um servidor malicioso podia disparar uma injeção de comando na máquina do desenvolvedor, executar código e sair com as credenciais. Um pacote npm popular, instalado em uma linha, e a porta estava aberta s3.
O ecossistema cresceu mais rápido que suas proteções. O registro oficial passa de 9,600 servidores publicados, as implantações de servidores remotos se multiplicaram por cinco desde maio de 2025, qualquer pessoa pode publicar e não há validação central; o seu agente trata uma entrada qualquer com a mesma confiança de uma ferramenta oficial s4. A NSA publicou em maio um guia de segurança dedicado ao MCP, afirmando que a adoção do protocolo superou a construção de suas proteções s5.
O GhostSplice, batizado pelo grupo de pesquisa ASSET, faz o próprio agente executar a exfiltração. Em vez de escrever a ordem de roubo completa, o servidor malicioso a divide: um fragmento na descrição de uma ferramenta, o outro no resultado que essa ferramenta devolve. Cada pedaço parece inofensivo sozinho; o agente recompõe tudo o que entra no seu contexto e executa a instrução inteira de boa-fé s1. Os números são o ponto central. Com a instrução dada em um único bloco, GPT-4o, Gemini 2.0 Flash e Llama 3.3 recusam 100% das vezes. Com a instrução fragmentada, os três obedecem 100% das vezes s1. Os modelos Claude resistem melhor na superfície, mas o Claude Haiku 4.5 recusa tudo pela API e cede em 100% no teste de três fragmentos rodado dentro do Cursor: o mesmo modelo recusa em um cliente e exfiltra em outro, conforme as proteções que o cliente adiciona ou não s1. O que os testes roubaram: chaves SSH, segredos de ambiente, código-fonte, dados de clientes, em projetos isolados com chaves falsas, com um método publicado e reproduzível s1. O mesmo laboratório publicou o Ghostcommit em junho, que escondia as instruções em arquivos PNG referenciados pelas convenções do projeto e depois codificava os segredos roubados no código-fonte como inteiros; a fragmentação de instruções é uma família de ataques, não um caso isolado s1. Dois pré-requisitos se mantêm: o servidor malicioso já precisa estar conectado ao seu agente, e o agente precisa ter direito de ler os arquivos visados s1.
No lado corporativo, a Cloudflare chama de "shadow MCP" os servidores não aprovados que os desenvolvedores ligam aos seus agentes. Desde a atualização da especificação, todo cliente MCP em conformidade envia um cabeçalho MCP-Protocol-Version, e o Gateway inspeciona esse cabeçalho em todo o tráfego TLS analisado, dando a uma equipe de segurança um painel de servidores únicos, usuários e volume de requisições s6. A versão mais recente da especificação adiciona os cabeçalhos Mcp-Method e Mcp-Name, que expõem a operação solicitada e o nome da ferramenta sem abrir o corpo da requisição, de modo que a rede consegue distinguir um agente lendo um ticket de um agente apagando cinquenta. As regras da Cloudflare cobrem dois casos, o shadow MCP puro (um servidor nunca aprovado) e o desvio do portal (um servidor aprovado acessado diretamente), e ambos são bloqueados pela mesma regra base s6.
O WriteGuard, aberto em beta privado, classifica cada ferramenta de cada servidor MCP em um nível de risco e aplica uma política diferente por nível: uma leitura passa sem atrito; uma escrita contida, como postar um comentário, passa mas é assinada como feita por um agente em nome de um humano identificado, com um evento de auditoria enviado a um log central; uma ação crítica, como fazer merge de código, implantar em produção ou apagar em massa, é bloqueada antes que o servidor a processe s7. O exemplo do GitLab no post: ler uma merge request passa, comentar passa com atribuição, fazer o merge é recusado até que um humano o faça. O agente mantém as permissões do funcionário que ele atende, mas cada escrita carrega duas assinaturas, a da pessoa e a da sessão do agente. A Cloudflare descreve o próprio uso interno: o portal dela conecta 27 servidores MCP, contra 13 em abril s7.
Os limites são reais. O WriteGuard está em beta privado mediante inscrição, e a detecção do Gateway exige uma implantação do Cloudflare Zero Trust com inspeção TLS ativada s7. A detecção só enxerga o tráfego de rede que ela decifra: um servidor MCP local rodando por stdio como um processo comum na sua máquina continua invisível para o Gateway, e é assim que rodam a maioria dos servidores instalados por desenvolvedores s6. Nenhuma dessas ferramentas corrige o mecanismo que o GhostSplice expõe. Os pesquisadores do ASSET dizem que a correção é tratar a saída das ferramentas como dado, nunca como instrução, e que essa separação ainda não existe nativamente nos agentes. As três recomendações deles: impedir que um valor produzido por uma ferramenta alimente sem checagem os argumentos de outra, manter a capacidade de recusar manualmente cada invocação de ferramenta e tratar qualquer anotação de um servidor não verificado como hostil por padrão s1.
Veredito: o que protege você e o que não protege
| Controle | A quem serve | Veredito |
|---|---|---|
| Recusas do modelo | Todos | Descartar como defesa: 100% de recusa em um bloco, 100% de obediência quando fragmentado [s1] |
| Proteções no lado do cliente | Todos | Manter: o mesmo modelo recusou na API e cedeu no Cursor [s1] |
| Inventário e procedência dos servidores | Solo e equipes | Manter: o GhostSplice precisa que o servidor já esteja conectado [s1] |
| Tokens dedicados com escopo restrito e rotacionados | Solo e equipes | Manter: tokens em texto puro e excesso de permissões são os dois primeiros caminhos de vazamento [s2] |
| Fixar versões e auditar dependências MCP | Solo e equipes | Manter: o mcp-remote entregou uma injeção de comando a mais de 400,000 downloads [s3] |
| Detecção por cabeçalhos no Gateway (MCP-Protocol-Version, Mcp-Method, Mcp-Name) | Empresas com Zero Trust | Testar se você já faz inspeção TLS; cega para servidores stdio [s6] |
| Níveis de risco do WriteGuard | Empresas | Testar pela lista de espera; só beta privado [s7] |
| Aprovação humana em toda escrita, merge e exclusão | Todos | Manter: a versão artesanal do que o WriteGuard industrializa [s7] |
Faça isto na segunda-feira
- Liste os servidores MCP realmente conectados a cada um dos seus agentes e remova todos os que você não usou no último mês.
- Para cada servidor restante, anote quem o publica e leia o que ele faz com os seus dados antes de mantê-lo; descarte qualquer servidor que veio de uma thread e não do fornecedor.
- Troque cada credencial compartilhada ou mestra em uma config MCP por um token dedicado, com o escopo mínimo de que aquele servidor precisa, e defina uma data de rotação.
- Confira que nenhum dos seus arquivos de config MCP está versionado no Git, e adicione-os ao .gitignore onde não estiverem.
- Fixe a versão de cada pacote MCP que você instala e procure no seu lockfile versões do mcp-remote cobertas pela CVE-2025-6514.
- Ative a aprovação manual para toda ferramenta que escreve, faz merge, implanta ou apaga, e mantenha-a ligada em todos os clientes que você usa.
- Revise uma vez as descrições de ferramentas de cada servidor de terceiros, procurando instruções dirigidas ao modelo e não a você.
- Se você usa Cloudflare Zero Trust, ative a inspeção TLS e monte o painel de shadow MCP a partir do cabeçalho MCP-Protocol-Version.
Para ir além
- Leia a análise completa do GhostSplice para ver a matriz de testes por modelo e por cliente, e as três mitigações propostas pelos pesquisadores s1.
- Procure o Ghostcommit, o ataque de junho do mesmo laboratório, para ver como as instruções se escondiam em arquivos PNG e como os segredos roubados eram codificados como inteiros no código-fonte s1.
- Passe os quatro caminhos de vazamento da análise de 17 de agosto pelas suas próprias configs: armazenamento em texto puro, excesso de permissões, cadeia de suprimentos, prompt injection s2.
- Leia a entrada do NVD da CVE-2025-6514 e confira quais versões do mcp-remote são afetadas antes de confiar em qualquer proxy OAuth na sua stack s3.
- Leia as considerações de design da NSA para MCP: é a única checklist neutra em relação a fornecedores escrita para equipes que implantam automação com agentes s5.
- Estude os cabeçalhos MCP-Protocol-Version, Mcp-Method e Mcp-Name no post da Cloudflare mesmo que você não use Cloudflare: qualquer proxy que você controla pode registrá-los em log s6.
- Pegue emprestados os quatro níveis de risco do WriteGuard (somente leitura, impacto mínimo, escrita contida, crítico) como grade de revisão das ferramentas que os seus próprios servidores expõem s7.
- Explore o README do registro oficial para entender o que a publicação exige e o que ela não verifica s4.
Fontes
- Malicious MCP servers can split exfiltration orders to bypass model refusals (GhostSplice), The Hacker News. Por que ler: o único lugar com os números por modelo e por cliente, além das mitigações dos pesquisadores.
- How MCP servers can expose enterprise secrets, The Hacker News. Por que ler: os quatro caminhos de vazamento expostos em ordem, utilizáveis como checklist de auditoria.
- CVE-2025-6514: mcp-remote command injection, NIST NVD. Por que ler: as versões afetadas e a severidade da primeira falha de cadeia de suprimentos MCP amplamente instalada.
- Official Model Context Protocol registry, modelcontextprotocol on GitHub. Por que ler: mostra como funciona a publicação e por que estar no registro não é sinal de confiança.
- NSA releases security design considerations for AI-driven automation leveraging MCP, NSA. Por que ler: um guia de design neutro em relação a fornecedores para equipes que implantam MCP em escala.
- Detecting and blocking shadow MCP at the protocol level, Cloudflare blog. Por que ler: explica os cabeçalhos da especificação que tornam o tráfego MCP visível na rede.
- Bring secure MCP connectivity to your enterprise with MCP Server Portals and WriteGuard, Cloudflare blog. Por que ler: o modelo de risco por ferramenta e o desenho de identidade com dupla assinatura, com um exemplo concreto do GitLab.
FAQ
Usar um modelo mais seguro me protege do GhostSplice?
Não. O ataque nunca pede nada proibido em uma peça só, então o treinamento de recusa não é acionado. O mesmo Claude Haiku 4.5 recusou tudo pela API e obedeceu 100% dentro do Cursor; as proteções do cliente decidiram o resultado, não o modelo.
Sou desenvolvedor solo, alguma ferramenta da Cloudflare serve para mim?
Hoje não. A detecção do Gateway exige uma implantação Zero Trust com inspeção TLS, o WriteGuard é um beta privado, e ambos são cegos para servidores stdio locais. A checklist acima é a versão solo dos mesmos controles.
Um servidor listado no registro oficial é seguro?
Estar listado não é estar validado. O registro passa de 9,600 servidores sem revisão central, e o seu agente confia numa entrada do registro tanto quanto numa ferramenta de fornecedor. Avalie a procedência e leia o código, não a listagem.
Qual é a mudança de maior valor?
Tokens dedicados, com escopo mínimo, por servidor, rotacionados como segredos de produção. Credenciais mestras em texto puro nos arquivos de config são o primeiro caminho de vazamento, e deixam qualquer outra falha, da CVE-2025-6514 à prompt injection, muito mais cara.
AIDive