Falha no AWS Kiro permitia injeção de código remoto

Falha no AWS Kiro permitia injeção de código remoto

O AWS Kiro, a IDE com Inteligência Artificial da Amazon voltada para desenvolvimento assistido por agentes, foi alvo de uma vulnerabilidade que evidencia um dos maiores desafios da segurança na era da IA generativa. Bastava que o desenvolvedor acessasse uma página da web contendo um texto invisível de apenas 1 pixel, cuidadosamente preparado para manipular o modelo de linguagem, para que a ferramenta reescrevesse automaticamente suas próprias configurações e criasse um caminho para a execução remota de código (RCE).

A pesquisa, divulgada pela Intezer em parceria com a Kodem Security, demonstra que o problema ia muito além de uma simples injeção de prompt. A exploração conseguia modificar o arquivo mcp.json, responsável pela configuração dos servidores do Model Context Protocol (MCP), permitindo que comandos arbitrários fossem executados posteriormente no computador da vítima. O mais preocupante é que a interface da IDE transmitia ao usuário a impressão de que a operação dependia de sua aprovação, quando, na prática, alterações críticas já haviam ocorrido.

Neste artigo, você entenderá como essa vulnerabilidade funcionava, por que ela representa um marco importante na evolução dos ataques contra agentes de IA, quais falhas semelhantes já haviam sido identificadas anteriormente no AWS Kiro e por que a solução definitiva da Amazon muda a forma como plataformas de desenvolvimento baseadas em IA deverão implementar mecanismos de segurança daqui para frente.

Como um texto invisível comprometeu o AWS Kiro

A vulnerabilidade explorava uma característica cada vez mais comum em assistentes inteligentes: a capacidade de acessar conteúdos externos para responder perguntas, resumir documentação ou analisar páginas da web.

O ataque começava com um site aparentemente legítimo. Visualmente, nada chamava atenção. Entretanto, escondido no código HTML havia um trecho de texto estilizado com CSS, utilizando fonte de 1 pixel, cor branca sobre fundo branco ou outros recursos que tornavam seu conteúdo praticamente invisível para pessoas, mas perfeitamente legível para o modelo de linguagem (LLM).

Quando o usuário solicitava que o AWS Kiro resumisse ou interpretasse aquela página, o modelo acabava lendo também as instruções ocultas.

Essas instruções não eram destinadas ao usuário, mas sim ao próprio agente da IDE.

Em vez de apenas resumir o conteúdo, o modelo era induzido a executar ações como modificar arquivos de configuração locais, adicionar novos servidores MCP e preparar comandos que seriam executados posteriormente durante o fluxo normal de desenvolvimento.

Na prática, tratava-se de uma sofisticada combinação entre injeção de prompt, confiança excessiva no modelo e permissões insuficientemente restritas dentro da própria plataforma.

qMfP5W0v aws kiro vulnerabilidade rce mcp
Imagem: TheHackerNews

Como o arquivo mcp.json era alterado

O alvo principal era o arquivo:

~/.kiro/settings/mcp.json

Esse arquivo define quais servidores MCP estão autorizados a interagir com a IDE.

O Model Context Protocol tornou-se um padrão importante para conectar agentes de IA a ferramentas externas, bancos de dados, sistemas corporativos e ambientes de desenvolvimento.

Ao modificar esse arquivo, um invasor poderia registrar um servidor controlado por terceiros.

Posteriormente, sempre que a IDE utilizasse aquele servidor MCP, comandos arbitrários poderiam ser enviados para a máquina do desenvolvedor.

O aspecto mais preocupante era que a ferramenta de escrita fsWrite conseguia alterar o arquivo sem exigir uma confirmação efetiva do usuário.

Embora a interface exibisse uma caixa de diálogo solicitando aprovação, pesquisadores demonstraram que o fluxo permitia que modificações importantes fossem realizadas mesmo quando o usuário clicava em Cancelar ou Recusar, criando uma falsa sensação de proteção.

Em outras palavras, havia uma diferença crítica entre o que a interface comunicava ao usuário e o comportamento real da plataforma.

Por que a injeção de prompt continua sendo um grande desafio

Durante os últimos dois anos, a comunidade de segurança tem alertado que injeções de prompt representam uma categoria completamente nova de ataques.

Ao contrário das vulnerabilidades tradicionais, elas exploram o comportamento do modelo de IA em vez de falhas clássicas de memória, autenticação ou validação de entrada.

Um simples texto pode modificar o raciocínio do modelo.

Uma página aparentemente inofensiva pode convencer um agente de IA a executar ações inesperadas.

Quando esse agente possui acesso ao sistema operacional, arquivos locais, terminal ou serviços externos, o impacto deixa de ser apenas informacional e passa a representar um risco operacional.

No caso do AWS Kiro, o problema mostrou que confiar apenas na capacidade do LLM de distinguir instruções legítimas de comandos maliciosos não é suficiente.

Modelos de linguagem foram projetados para compreender texto, não para atuar como mecanismos de segurança.

O histórico de falhas e a fragilidade do modelo de permissões por IA

O incidente não surgiu isoladamente.

Desde o lançamento do AWS Kiro, pesquisadores vêm identificando diferentes formas de manipular a IDE para alterar arquivos sensíveis.

Em vulnerabilidades anteriores, ataques semelhantes permitiam modificar arquivos como:

  • mcp.json
  • .vscode/settings.json

Essas alterações eram suficientes para modificar o comportamento da IDE ou adicionar configurações potencialmente perigosas.

Posteriormente, outra pesquisa levou à divulgação da CVE-2026-10591, envolvendo o arquivo .vscode/tasks.json.

Nesse cenário, tarefas automatizadas podiam ser manipuladas para executar comandos durante operações rotineiras do ambiente de desenvolvimento.

Embora cada vulnerabilidade apresentasse detalhes técnicos diferentes, todas compartilhavam o mesmo problema estrutural:

A segurança dependia excessivamente das decisões tomadas pelo modelo de IA ou pelo modo Autopilot.

Isso cria uma situação extremamente delicada.

Se um modelo pode ser convencido por uma instrução cuidadosamente elaborada, então qualquer mecanismo de autorização baseado apenas em seu julgamento se torna vulnerável.

Em ambientes corporativos, onde agentes possuem acesso a repositórios Git, credenciais em nuvem, bancos de dados e pipelines de CI/CD, esse risco cresce exponencialmente.

Como a AWS Kiro passou a proteger caminhos críticos

A resposta da Amazon não foi apenas corrigir um comportamento específico.

Ela alterou a própria arquitetura de permissões da plataforma.

A partir da versão 0.11.130, posteriormente consolidada na linha 1.0.x, o AWS Kiro passou a implementar um conceito de caminhos protegidos.

Arquivos considerados críticos deixaram de poder ser modificados livremente pelo agente de IA.

Em vez disso, passaram a existir restrições implementadas diretamente na plataforma, independentemente da resposta produzida pelo modelo de linguagem.

Esse detalhe representa uma mudança importante de paradigma.

Agora, mesmo que um LLM seja induzido por uma injeção de prompt, ele simplesmente não possui capacidade técnica para modificar determinados arquivos sem passar pelos controles impostos pelo próprio sistema.

Além disso, a nova arquitetura incorpora um modelo baseado em permissões por capacidades (capability-based permissions).

Nesse modelo, cada ferramenta recebe apenas os privilégios estritamente necessários para realizar determinada operação.

Em vez de confiar que o agente “tomará a decisão correta”, a plataforma impede tecnicamente que operações proibidas sejam executadas.

Esse princípio segue conceitos clássicos de segurança como:

  • Privilégio mínimo
  • Defesa em profundidade
  • Separação de responsabilidades
  • Isolamento entre componentes

São práticas amplamente utilizadas em sistemas operacionais modernos e que agora passam a ser igualmente relevantes para agentes de IA.

O que essa vulnerabilidade ensina para toda a indústria

Embora o caso envolva especificamente o AWS Kiro, as conclusões se aplicam praticamente a todas as IDEs modernas baseadas em agentes inteligentes.

Ferramentas como GitHub Copilot, Cursor, Windsurf e outras plataformas semelhantes caminham para oferecer acesso cada vez maior ao sistema operacional.

Quanto mais autonomia esses agentes recebem, maior se torna a superfície de ataque.

A principal lição é que segurança não pode depender do comportamento esperado de um modelo de IA.

Modelos continuam suscetíveis a manipulações textuais, ambiguidades linguísticas e técnicas de engenharia de prompt.

Por isso, controles críticos devem existir em camadas inferiores da arquitetura.

O sistema operacional, o mecanismo de permissões, o sandbox de execução e o controle de acesso a arquivos precisam atuar como barreiras independentes.

Mesmo que um agente seja enganado, ele não deve possuir privilégios suficientes para comprometer a máquina do usuário.

Essa filosofia aproxima a segurança de agentes de IA dos princípios tradicionais da segurança de sistemas, onde confiança nunca deve substituir mecanismos técnicos de proteção.

O futuro da segurança em agentes de codificação

O episódio envolvendo o AWS Kiro demonstra que a evolução das IDEs inteligentes exige uma mudança profunda na forma como plataformas de desenvolvimento tratam permissões, isolamento e execução de comandos.

A descoberta reforça que injeções de prompt deixaram de ser apenas um problema acadêmico para se tornarem uma ameaça concreta quando agentes possuem acesso direto ao sistema operacional e a arquivos críticos do ambiente de desenvolvimento. A resposta da Amazon, ao introduzir caminhos protegidos e um modelo de permissões baseado em capacidades, representa um avanço importante ao deslocar a segurança do comportamento do modelo para mecanismos estruturais da própria plataforma.

Para desenvolvedores, equipes de DevOps, administradores de sistemas Linux e profissionais de segurança, a principal recomendação é verificar imediatamente se o AWS Kiro está atualizado para a série 1.0.x (ou, no mínimo, para a versão 0.11.130, onde as correções começaram a ser implementadas). Além disso, vale revisar políticas de execução de agentes de IA, limitar permissões sempre que possível e adotar uma postura de privilégio mínimo em ferramentas capazes de interagir com arquivos locais e executar comandos.

À medida que agentes de codificação se tornam parte do fluxo diário de desenvolvimento, casos como esse servirão de referência para toda a indústria. O equilíbrio entre produtividade e segurança dependerá cada vez mais de plataformas que implementem controles robustos no nível do sistema, e não apenas da capacidade dos modelos de linguagem de distinguir instruções legítimas de tentativas de manipulação.