Falha no AWS Kiro permitia que página web maliciosa alterasse configurações e executasse código
22 de Julho de 2026

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

Anuncie no CaveiraTech e coloque sua marca na frente de milhares de profissionais de cybersecurity

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...