Repositório limpo no GitHub engana agentes de desenvolvimento de IA para executar malware
Aprofundamento CEVIU
Aprofundamento
A técnica demonstrada pela Mozilla 0DIN não é uma falha em um único agente, mas uma falha de projeto sistêmica em como agentes de desenvolvimento de IA, como Claude Code, GitHub Copilot Agents ou o OpenClaw AI, interpretam e resolvem erros. O ataque funciona porque o agente não avalia intenção, só sintaxe: ao ver 'pip3 install -r requirements.txt' seguido de um erro que sugere 'python3 -m axiom init', ele executa a segunda instrução como rotina de recuperação, mesmo que essa linha invoque um módulo Python que, por sua vez, chame um shell script externo que consulte um registro DNS TXT controlado pelo invasor. Nenhum arquivo do repositório contém código malicioso executável direto; o payload está totalmente fora da árvore do código-fonte, no DNS. Isso evita detecção por scanners estáticos (como Semgrep), SAST e até por ferramentas de análise de dependência como Dependabot.
O ataque foi validado com Claude Code, mas os pesquisadores destacam que qualquer agente que implemente 'auto-recovery' baseado em mensagens de erro textuais está vulnerável, incluindo versões experimentais de GitHub Copilot Workspace e agentes baseados em Llama 3.2-Agent. Não há evidência de exploração em larga escala até hoje, mas o Miasma worm (5 de junho de 2026) já usou lógica semelhante de inicialização indireta via configuração para comprometer 73 repositórios do GitHub Microsoft, confirmando a viabilidade operacional do vetor.
Por que isso importa
Esse tipo de ataque representa um deslocamento crítico na cadeia de suprimentos de software: o ponto de infecção deixou de ser o código-fonte ou o pacote publicado (PyPI, npm) e passou para o *comportamento de automação* dos próprios agentes. Diferentemente de ataques clássicos de dependência comprometida (ex.: typosquatting), aqui não há 'malware no pip install'. O risco está na forma como o agente *reage* a um erro, e isso não é detectável por ferramentas tradicionais de segurança de código. Para equipes de DevSecOps, significa que políticas de 'aprovador humano obrigatório para comandos de rede' ou 'sandboxing de todas as etapas de setup' deixaram de ser boas práticas e viraram requisitos de segurança mínimos.
Impacto para desenvolvedores
Desenvolvedores que usam agentes para clonar, configurar e rodar projetos de terceiros, especialmente em onboarding, testes de integração ou POCs rápidos, devem tratar cada 'python3 -m ' como potencialmente perigoso, mesmo se o repositório parecer limpo e o comando parecer padrão. A recomendação prática da 0DIN é executar qualquer setup em container isolado com DNS outbound bloqueado (ex.: docker run --dns 127.0.0.1), desabilitar execução de shell em tempo de execução (via seccomp ou BPF) e exigir aprovação explícita antes de comandos que envolvam 'init', 'setup', 'bootstrap' ou 'configure'. Ferramentas como 'pip install --no-deps' ou 'pip install --dry-run' também ajudam a inspecionar o que será carregado antes da execução real.
Perguntas frequentes
O que é o ataque do repositório limpo no GitHub que engana agentes de IA?
É uma técnica de ataque demonstrada pela Mozilla 0DIN onde um repositório GitHub aparentemente inofensivo contém um pacote Python projetado para falhar com uma mensagem de erro que sugere um comando de inicialização. Agentes de IA, como Claude Code, executam esse comando automaticamente como parte da recuperação de erro, acionando um script que busca e executa código malicioso de um registro DNS TXT controlado pelo invasor.
Claude Code é vulnerável a esse ataque?
Sim, a prova de conceito da Mozilla 0DIN foi realizada especificamente com Claude Code. O agente seguiu a sugestão de erro ('python3 -m axiom init') sem questionar sua origem ou impacto, permitindo a execução do shell remoto. A vulnerabilidade não é exclusiva do Claude Code, mas afeta qualquer agente que implemente recuperação automatizada baseada em mensagens de erro textuais.
Como evitar que agentes de IA executem malware nesse cenário?
Bloqueie DNS outbound e egress de rede durante fases de setup, execute repositórios não confiáveis em sandboxes ou containers isolados, exija aprovação humana explícita para comandos que chamem módulos externos (ex.: 'python3 -m ') ou executem scripts de shell, e configure os agentes para revelar toda a cadeia de execução, inclusive scripts baixados dinamicamente ou valores obtidos via DNS.
Esse ataque já foi usado em incidentes reais?
Não há relato público de uso em larga escala até hoje. No entanto, o worm Miasma, que comprometeu 73 repositórios do GitHub Microsoft em 5 de junho de 2026, empregou lógica semelhante de inicialização indireta via configuração, confirmando que o vetor é viável e já está sendo explorado operacionalmente por ameaças avançadas.
Fontes
- bleepingcomputer.comfonte original
- Categoria
- CEVIU Segurança da Informação
- Publicado
- 01 de julho de 2026
- Editoria
- CEVIU Segurança da Informação

