Falha no Azure DevOps MCP permite sequestro de IAs em PRs

Escrito por
Jardeson Márcio
Jardeson Márcio é Jornalista e Mestre em Tecnologia Agroalimentar pela Universidade Federal da Paraíba. Com 8 anos de experiência escrevendo no SempreUpdate, Jardeson é um especialista...

Comentários invisíveis em PRs podem sequestrar agentes de IA no Azure DevOps.

Imagine um Pull Request aparentemente inofensivo no Azure DevOps MCP que, ao ser analisado por um assistente de IA, passa a executar instruções invisíveis capazes de acessar informações confidenciais de outros projetos. O desenvolvedor enxerga apenas um código comum, mas o agente de inteligência artificial recebe um conteúdo diferente, contendo comandos ocultos que podem alterar completamente seu comportamento.

Essa é a base de uma vulnerabilidade recentemente identificada pela Manifold Security no servidor oficial do Azure DevOps MCP, que demonstra como agentes de IA podem ser manipulados por meio de uma técnica de injeção indireta de prompt. Em vez de explorar uma falha tradicional de execução de código, o ataque explora a confiança que os assistentes depositam nas informações recebidas por APIs aparentemente legítimas.

Neste artigo, você entenderá como funciona essa vulnerabilidade, por que ela representa um risco crescente para ambientes de DevSecOps, como comentários HTML invisíveis podem influenciar ferramentas como Copilot CLI e Claude Code, além das principais estratégias para reduzir a superfície de ataque em ambientes que utilizam o Model Context Protocol (MCP).

O que é a falha no Azure DevOps MCP e como funciona o ataque

O Model Context Protocol (MCP) surgiu como um padrão para conectar modelos de inteligência artificial a ferramentas externas, permitindo que agentes consultem repositórios, sistemas de tickets, pipelines, bancos de dados e diversos outros recursos corporativos.

Na prática, um servidor MCP atua como intermediário entre a IA e os serviços utilizados pela empresa. Isso permite que o agente execute tarefas complexas, como revisar código, abrir Pull Requests, consultar documentação ou analisar pipelines de CI/CD.

O problema identificado pela Manifold Security não está propriamente no protocolo, mas na implementação oficial do servidor Azure DevOps MCP, que pode transformar o agente em um clássico caso de confused-deputy.

Esse conceito, conhecido há décadas na segurança da informação, descreve uma situação em que um sistema com privilégios elevados é enganado para executar ações em benefício de um atacante. Em vez de comprometer diretamente o agente, o invasor manipula os dados que ele recebe, fazendo com que ele utilize legitimamente suas próprias permissões para realizar operações não autorizadas.

Em outras palavras, o agente não está “hackeado”. Ele simplesmente acredita estar executando uma solicitação legítima.

jFt89uZn falha azure devops mcp sequestro ia
Imagem: TheHackerNews

O mecanismo do comentário oculto em Markdown e HTML

A descoberta chama atenção pela simplicidade.

Os Pull Requests do Azure DevOps permitem comentários escritos em Markdown, que também aceitam comentários HTML utilizando a sintaxe:

<!-- comentário invisível -->

Esses comentários permanecem completamente invisíveis para qualquer desenvolvedor que visualize o PR pela interface web.

No entanto, quando o servidor Azure DevOps MCP consulta o Pull Request através da API, o conteúdo bruto é retornado integralmente.

Isso significa que um agente como Copilot CLI, Claude Code ou qualquer outro cliente compatível com MCP recebe tanto o texto visível quanto o conteúdo escondido entre as tags HTML.

Na prática, um atacante pode inserir instruções como:

  • ignorar as instruções anteriores;
  • procurar segredos em outros projetos;
  • listar variáveis confidenciais;
  • abrir novos Pull Requests;
  • enviar informações para outro destino;
  • consultar repositórios diferentes daqueles originalmente analisados.

Para o revisor humano, não existe qualquer indício visual dessas instruções.

Para a IA, entretanto, elas fazem parte do contexto recebido.

É justamente essa diferença entre aquilo que o humano vê e aquilo que o modelo processa que torna esse ataque extremamente perigoso.

A brecha no código do servidor oficial do Azure DevOps MCP

A análise técnica mostrou que a Microsoft já havia desenvolvido um mecanismo para reduzir riscos de injeção de prompt.

Essa proteção utiliza a função createExternalContentResponse, responsável por aplicar um processo de sanitização conhecido informalmente como “spotting”, identificando conteúdos potencialmente perigosos antes de entregá-los ao modelo de IA.

Essa proteção já era utilizada em conteúdos provenientes de:

  • wikis;
  • logs;
  • outros recursos considerados externos.

O problema é que o endpoint responsável pelos Pull Requests, identificado como repo_get_pull_request_by_id, não utilizava essa mesma proteção.

Como consequência, comentários HTML ocultos eram entregues ao agente exatamente como haviam sido escritos.

Na prática, uma proteção existente simplesmente deixou de ser aplicada em um dos componentes mais sensíveis do fluxo de desenvolvimento.

Esse detalhe transformou os Pull Requests em um vetor extremamente eficiente para ataques de injeção de prompt.

Por que isso acontece: A tríade letal na automação com IA

O pesquisador Simon Willison descreve que agentes de IA tornam-se realmente perigosos quando três condições aparecem simultaneamente.

Essa combinação ficou conhecida como a tríade letal.

Acesso a informações privadas

O primeiro requisito é que o agente possua acesso a dados sensíveis.

Isso inclui:

  • repositórios privados;
  • documentação interna;
  • segredos;
  • tokens;
  • pipelines;
  • bancos de dados;
  • ambientes corporativos.

Quanto maiores forem seus privilégios, maior será o impacto de uma eventual manipulação.

Exposição a conteúdo não confiável

O segundo elemento ocorre quando a IA consome informações controladas por terceiros.

No caso do Azure DevOps MCP, esse conteúdo chega por meio dos próprios Pull Requests.

Como comentários ocultos fazem parte dos dados retornados pela API, eles acabam sendo interpretados como parte do contexto legítimo.

A IA não possui capacidade de distinguir automaticamente uma instrução operacional de uma tentativa de manipulação.

Capacidade de exfiltrar informações

O terceiro componente fecha o ciclo do ataque.

Se o agente consegue:

  • criar Pull Requests;
  • abrir Issues;
  • responder comentários;
  • consultar outros projetos;
  • executar ferramentas;
  • comunicar resultados;

então ele também pode acabar revelando informações confidenciais obtidas durante sua execução.

É justamente essa combinação que transforma uma simples injeção de prompt em um vazamento real de dados.

O problema não está no modelo de IA

Um aspecto importante da pesquisa é que os testes foram reproduzidos utilizando diferentes agentes.

Entre eles estavam o Copilot CLI e o Claude Code.

O comportamento foi semelhante em ambos os casos.

Isso demonstra que a vulnerabilidade não depende do modelo de linguagem utilizado.

O problema está no conector MCP, responsável por fornecer o contexto ao agente.

Independentemente de utilizar diferentes modelos de IA, todos recebem exatamente o mesmo conteúdo enviado pelo servidor.

Se esse conteúdo contém instruções ocultas, qualquer agente suficientemente autônomo poderá ser induzido a executá-las.

Isso reforça uma mudança importante na segurança moderna: proteger apenas o modelo de IA não é suficiente.

Também é necessário proteger toda a cadeia responsável pelo fornecimento de contexto.

Como se proteger e mitigar riscos em fluxos DevSecOps com Azure DevOps MCP

Embora o ataque seja sofisticado, diversas medidas reduzem significativamente sua eficácia.

A principal delas continua sendo o princípio do menor privilégio.

Os Personal Access Tokens (PATs) utilizados pelos agentes devem possuir apenas as permissões estritamente necessárias para executar suas tarefas.

Um agente responsável apenas por revisar código não deve possuir autorização para consultar todos os projetos da organização.

Também é recomendável separar agentes por função.

Quanto menor o escopo de acesso, menor será o impacto caso um deles seja manipulado.

Outra prática importante consiste em exigir aprovação humana antes da execução de ações críticas.

Automações totalmente autônomas aumentam significativamente o risco de exploração.

Ferramentas que permitem isolamento de contexto — como opções de execução restrita e flags específicas, incluindo modos equivalentes ao uso de -d em determinados clientes — ajudam a limitar quais informações ficam disponíveis durante uma sessão.

Além disso, equipes de DevSecOps devem revisar cuidadosamente quais conteúdos são enviados aos modelos de IA, aplicando sanitização consistente em todas as fontes de dados, especialmente comentários, descrições de Pull Requests, documentação colaborativa e mensagens provenientes de usuários.

Monitorar logs das ações executadas pelos agentes também passa a ser essencial para identificar comportamentos inesperados antes que resultem em comprometimento de informações sensíveis.

O futuro da segurança no Azure DevOps MCP e nos agentes de IA

A vulnerabilidade descoberta pela Manifold Security evidencia uma transformação importante no cenário da segurança da informação.

Ataques contra agentes de IA não exploram necessariamente falhas clássicas de software. Em muitos casos, basta manipular o contexto recebido pelo modelo para influenciar suas decisões.

O caso do Azure DevOps MCP mostra que até mesmo um comentário invisível pode se transformar em uma ferramenta poderosa para induzir agentes privilegiados a executar ações fora de seu propósito original.

O aspecto mais preocupante é que revisores humanos jamais conseguirão validar aquilo que não conseguem enxergar na interface visual.

À medida que protocolos como o MCP se tornam parte da rotina de desenvolvimento, segurança deixa de significar apenas proteger infraestrutura e passa também por garantir que o contexto fornecido aos agentes seja íntegro, confiável e cuidadosamente filtrado.

Para equipes que utilizam assistentes de IA em seus fluxos de desenvolvimento, este é um momento oportuno para revisar permissões, auditar servidores MCP, limitar privilégios e adotar mecanismos adicionais de validação antes de permitir que agentes automatizados executem tarefas críticas.

A evolução da inteligência artificial promete acelerar o desenvolvimento de software, mas também exige uma nova mentalidade de segurança. Afinal, quando um agente possui acesso privilegiado ao ambiente corporativo, proteger o contexto que ele recebe torna-se tão importante quanto proteger o próprio código.

Compartilhe este artigo
Jardeson Márcio é Jornalista e Mestre em Tecnologia Agroalimentar pela Universidade Federal da Paraíba. Com 8 anos de experiência escrevendo no SempreUpdate, Jardeson é um especialista em Android, Apple, Cibersegurança e diversos outros temas do universo tecnológico. Seu foco é trazer análises aprofundadas, notícias e guias práticos sobre segurança digital, mobilidade, sistemas operacionais e as últimas inovações que moldam o cenário da tecnologia.