Package Hallucination Attack usa prompt injection em arquivos de regras (AGENTS.md) para fazer agentes de codigo instalarem pacotes maliciosos
Pesquisadores demonstraram um novo vetor de ataque contra agentes de codificacao autonoma: injetar prompts maliciosos dentro de arquivos de regras compartilhados pela comunidade, como AGENTS.md ou .cursorrules, para induzir o agente a substituir dependencias legitimas por pacotes controlados pelo atacante. O framework PackHallu, que reescreve iterativamente esses prompts injetados usando feedback do comportamento real do agente e mutacoes guiadas por LLM, alcancou altas taxas de sucesso e forte transferabilidade entre diferentes modelos e frameworks de agentes testados.
Frameworks modernos de codificacao agentica dependem cada vez mais de arquivos de regras compartilhados pela comunidade -- como AGENTS.md, .cursorrules e equivalentes de outras ferramentas -- que instruem o agente sobre convencoes de projeto, preferencias de estilo e, frequentemente, quais bibliotecas ou pacotes usar em determinadas situacoes. Esses arquivos sao tratados como configuracao confiavel pelo pipeline do agente, mas, como qualquer texto em linguagem natural que o LLM processa como instrucao, sao tambem uma superficie de prompt injection: se um desenvolvedor copia um arquivo de regras de um repositorio publico ou de um template compartilhado sem revisao cuidadosa, qualquer instrucao maliciosa escondida ali tem a mesma autoridade, para o agente, que uma instrucao legitima do mantenedor do projeto.
O ataque de 'package hallucination' proposto explora exatamente essa confianca implicita: o atacante injeta no arquivo de regras um texto desenhado para induzir o agente a, em algum momento da geracao de codigo, substituir uma dependencia legitima (por exemplo, uma biblioteca popular e bem conhecida) por um pacote com nome semelhante mas controlado pelo atacante -- uma variacao do classico ataque de 'dependency confusion'/'typosquatting', mas automatizado via manipulacao do proprio agente de codigo em vez de depender de o desenvolvedor digitar o nome errado manualmente. Como o agente de codificacao normalmente tem permissao para editar arquivos de manifesto de dependencias (package.json, requirements.txt, etc.) e, em muitos fluxos, tambem para executar comandos de instalacao, uma substituicao bem-sucedida pode levar diretamente a execucao de codigo malicioso no ambiente de desenvolvimento ou de CI.
A contribuicao tecnica central e o PackHallu, um framework de otimizacao evolutiva que nao se contenta com um unico prompt malicioso fixo: ele reescreve iterativamente o texto injetado no arquivo de regras usando feedback vindo da trajetoria real de execucao do agente (ou seja, observa o que o agente efetivamente fez apos ler uma versao do prompt e ajusta a proxima versao com base nisso) combinado com mutacoes guiadas por outro LLM, de forma analoga a algoritmos geneticos aplicados a texto. Essa abordagem permite que o ataque se adapte a diferentes modelos e frameworks de agente sem exigir conhecimento detalhado de como cada um processa internamente o arquivo de regras, o que explica a forte transferabilidade reportada entre combinacoes distintas de LLM e framework de agente nos benchmarks avaliados.
O risco pratico mais direto desse achado e para a cadeia de suprimentos de software: equipes que adotam arquivos de regras de terceiros -- de templates de comunidade, de repositorios de exemplo, ou mesmo compartilhados internamente sem controle de versao rigoroso -- podem estar introduzindo, sem saber, um vetor de comprometimento que so se manifesta quando um agente de codigo realmente gera e instala as dependencias alteradas. Isso reforca a necessidade de tratar arquivos de regras e instrucoes de configuracao para agentes de codigo com o mesmo rigor de revisao de seguranca aplicado a dependencias de codigo propriamente ditas, e de implementar verificacoes automatizadas (como validacao de integridade/proveniencia de pacotes antes da instalacao) que nao dependam exclusivamente do bom comportamento do agente.