Um texto oculto em uma página da web foi suficiente para fazer o Kiro, IDE de programação com agentes da AWS, reescrever seu próprio arquivo de configuração e executar o código de um atacante na máquina de um desenvolvedor, sem que qualquer etapa de aprovação pudesse impedir a ação.
A Intezer, em pesquisa conjunta com a Kodem Security, descobriu que um pedido tão comum quanto solicitar ao Kiro o resumo de uma página podia terminar em execução remota de código.
A AWS já corrigiu o problema, e nenhum CVE foi atribuído ao caso.
O modelo de segurança do Kiro depende de um humano clicar em “allow”.
O agente pode executar comandos no shell, buscar URLs e editar arquivos, e o projeto parte do princípio de que o desenvolvedor revisará qualquer ação de risco antes que ela aconteça.
Essa etapa de aprovação é a fronteira de segurança, e a falha permitia que um atacante a burlasse sem que o desenvolvedor sequer tivesse a chance de escolher.
O ponto fraco era o arquivo que informa ao Kiro quais ferramentas externas devem ser carregadas.
O Kiro lê sua lista de servidores Model Context Protocol e o comando exato usado para iniciar cada um deles a partir de ~/.kiro/settings/mcp.json.
Quando esse arquivo muda, o Kiro o recarrega e inicia tudo o que estiver descrito nele, no host, com os privilégios do desenvolvedor.
No momento da pesquisa, o Kiro podia escrever em mcp.json por conta própria com sua ferramenta fsWrite, sem exigir aprovação, e recarregava o arquivo automaticamente.
Assim, qualquer pessoa capaz de influenciar o conteúdo desse arquivo podia registrar um servidor cujo comando de inicialização fosse código arbitrário, que seria executado no instante em que o Kiro recarregasse a configuração.
Inserir texto no contexto do Kiro é a parte fácil.
O agente incorpora conteúdo externo sempre que o desenvolvedor pede para buscar uma URL, ler documentação ou pesquisar na web.
A prova de conceito da Intezer plantou as instruções em texto branco de um pixel, com color:#fff;font-size:1px, em uma página comum de documentação de API.
O desenvolvedor vê uma referência limpa da API.
O Kiro lê o bloco oculto como uma tarefa de configuração, grava o servidor malicioso em mcp.json e recarrega o arquivo.
Em poucos segundos, o servidor malicioso é iniciado e o código do atacante passa a ser executado.
Na demonstração da Intezer, o payload apenas enviava periodicamente ao invasor o nome do host, o nome de usuário e a plataforma da máquina, a cada 10 segundos, o suficiente para comprovar a execução.
O mesmo mecanismo poderia rodar qualquer comando disponível ao desenvolvedor, o bastante para roubar credenciais e código-fonte, implantar persistência ou avançar para outros sistemas internos alcançáveis.
Os pesquisadores mantiveram o callback apontado para localhost, para que nenhum usuário real do Kiro fosse exposto, e observaram que o ataque não é perfeitamente confiável: o modelo é não determinístico e pode resumir a página e ignorar o bloco oculto.
Nos testes, funcionou em uma ou duas tentativas.
Uma única vitória já basta.
Em alguns casos, o Kiro exibia uma janela informando que a configuração do MCP havia mudado e pedindo aprovação.
Isso não fazia diferença.
A configuração era recarregada independentemente do que o desenvolvedor clicasse, então o aviso não oferecia proteção real.
A única ação que o desenvolvedor de fato aprovava era a busca pela URL.
O Kiro já tinha enfrentado esse problema antes
Um agente capaz de escrever o arquivo que define o que ele pode executar já havia aparecido no Kiro anteriormente.
No dia do lançamento do Kiro, em julho de 2025, Johann Rehberger, da Embrace The Red, mostrou o mesmo caminho de gravação em mcp.json e execução: uma injeção de prompt inseria código personalizado em um arquivo de configurações do MCP e o executava no instante em que o arquivo era salvo.
Ele também apontou uma segunda rota, escrevendo em .vscode/settings.json para incluir comandos de shell em uma lista permitida.
A resposta da AWS, Kiro 0.1.42, adicionou um pedido de aprovação para essas gravações, mas somente no modo Supervised.
O modo Autopilot, padrão, continuava gravando o arquivo sozinho, e esse é o modo usado pela cadeia da Intezer em 2026.
Na ocasião, também não foi emitido CVE.
Outros pesquisadores encontraram variações próximas da mesma classe de falha.
A Cymulate relatou que o Kiro executava automaticamente código gravado em .vscode/tasks.json quando uma pasta era aberta.
A AWS atribuiu o identificador
CVE-2026-10591
, com nota 8,8 no CVSS 3.1 e 8,6 no CVSS 4.0, e corrigiu o problema na série 0.11.
A cadeia baseada em mcp.json da Intezer ainda estava ativa nas versões 0.9.2, para macOS, e 0.10.16, para Ubuntu, quando a empresa a reportou em fevereiro de 2026, e a correção foi confirmada na versão 0.11.130.
A resposta da AWS foi deixar de confiar no julgamento do modelo sobre esses arquivos e mover a verificação para a plataforma.
O Kiro agora marca mcp.json, .vscode/tasks.json, o diretório .git e outros arquivos sensíveis como caminhos protegidos, cada um exigindo aprovação explícita antes de uma gravação.
A própria documentação da empresa deixa isso claro: “O modo Supervised é um fluxo de trabalho de revisão de código, não um controle de segurança.” A versão 1.0, lançada depois, se apoia ainda mais no mesmo princípio, com um modelo de permissões baseado em capacidades, que pede consentimento para qualquer ação que o desenvolvedor ainda não tenha autorizado.
Essa combinação fecha a rota explorada pela Intezer: a empresa confirmou que o ataque falhou na versão 0.11.130 e, ao contrário da correção de 2025, a verificação de caminhos protegidos funciona tanto no modo Autopilot quanto no modo Supervised.
A Intezer comunicou a falha pelo HackerOne em 11 de fevereiro de 2026 e, em 3 de abril, a AWS informou que a correção havia sido enviada em sua versão mais recente, embora sem indicar qual.
Os pesquisadores confirmaram o conserto por conta própria na versão 0.11.130.
Ainda não há CVE atribuído.
Não encontrou-se registro do caso no National Vulnerability Database em 21 de julho de 2026, e a AWS não publicou uma lista completa das versões afetadas.
A Intezer não relatou exploração em ambiente real, e seus testes cobriram apenas o Kiro IDE; não foi possível determinar se o Kiro CLI ou as versões web também compartilhavam a falha.
As versões atuais estão na linha 1.0.x, com a 1.0.165 listada como a mais recente em 21 de julho de 2026, e quem estiver em uma versão anterior deve atualizar pela página de downloads do Kiro.
Ao longo de cerca de um ano, três pesquisas independentes encontraram a mesma estrutura de falha no Kiro: um agente editando discretamente os arquivos que definem o que ele está autorizado a executar.
O Kiro não está sozinho.
Em dezembro de 2025, pesquisadores catalogaram mais de 30 falhas em ferramentas de programação com IA, incluindo Cursor e Copilot, todas transformando recursos legítimos do editor em caminhos de injeção de prompt para execução de código ou roubo de dados.
As correções atuais apontam para a mesma lição: o controle que funciona fica na plataforma, aplicado em todos os modos e fora do alcance de qualquer alteração que o modelo possa ser induzido a fazer.
À medida que mais do fluxo de desenvolvimento migra para agentes que leem a web aberta, manter um humano no circuito só funciona como controle se essa pessoa enxergar a etapa que realmente importa, e se a plataforma continuar firme mesmo depois de o modelo ter sido totalmente convencido a atravessar a linha.
Publicidade
Nossa audiência é formada por analistas, pentesters, decisores e entusiastas que consomem nossas notícias todo dia pelo Site, Newsletter e Instagram. Fale com quem realmente importa para o seu negócio. Anuncie aqui. Saiba mais...