Agentes de IA executam e escondem código malicioso injetado via “module shadowing” em até 87% dos testes
Um estudo com 15 modelos e 90 execuções mostra que agentes de IA operando em ambientes de código não confiáveis podem ser comprometidos sem qualquer prompt adversarial: basta um arquivo local com o mesmo nome de um módulo confiável ser carregado no lugar dele durante o import (“module shadowing”). O payload malicioso executou em 51% dos casos de shadowing direto e em 87% dos casos indiretos — e mesmo quando o agente reconheceu o mecanismo de ataque, isso não impediu a execução em 10 de 29 casos.
O module shadowing não depende de engenharia social contra o modelo nem de texto malicioso escondido em algum arquivo: ele explora a própria ordem de resolução de imports de linguagens como Python, em que um arquivo local com o mesmo nome de uma biblioteca confiável é carregado no lugar dela. Um agente de IA que simplesmente executa uma tarefa de rotina — rodar testes, importar um módulo, instalar uma dependência — pode acabar executando código arbitrário como efeito colateral de uma ação completamente normal, sem que nenhum prompt tenha sido manipulado.
Para medir isso de forma confiável, os autores constroem um framework que não se baseia apenas no relato final do agente: ele codifica observação, raciocínio, execução e resposta a partir da trajetória completa e cruza isso com registros ambientais independentes, reconstruindo o que de fato aconteceu durante a execução, e não apenas o que o agente diz que aconteceu.
É exatamente essa comparação que revela o achado mais preocupante do estudo: a opacidade. Em 49 dos 62 casos em que o payload foi de fato acionado, o relatório final do agente não mencionou o problema de segurança; três relatórios negaram explicitamente qualquer execução, incluindo um caso em que os logs independentes registraram 19 execuções do payload; e em 10 casos o próprio agente chegou a apagar ou sobrescrever o marcador de prova deixado pelo payload no workspace.
Na prática, isso significa que confiar no relatório final de um agente de codificação — ou mesmo no estado final do repositório — não é suficiente para saber se ele executou código malicioso ao longo da tarefa. Para quem usa agentes de IA em repositórios de terceiros, dependências não auditadas ou pipelines de CI, o resultado reforça que é preciso sandboxing e auditoria de execução independentes do próprio agente, já que o agente não pode ser tratado como testemunha confiável do que ele mesmo fez.