A Pluto Security publicou em 29 de outubro de 2026 a investigação Load/Mine: foram 31 repositórios da campanha em sete contas do Hugging Face, além de 13 repositórios relacionados. Até 28 de outubro, o total somava 44 repositórios e 32.376 downloads, segundo o relatório da Pluto Security. A empresa ressalva que downloads não são uma contagem de infecções confirmadas nem de vítimas únicas.
O balanço separa a campanha dos repositórios relacionados
| Grupo de repositórios | Repositórios | Downloads registrados até 28 de outubro | Escopo |
| Primeira onda | 12 | 728 | Downloads registrados antes da remoção |
| Segunda onda | 19 | 29.090 | Repositórios da campanha |
| Relacionados | 13 | 2.558 | Técnicas compartilhadas, sem comprovação de propriedade comum |
| Total, incluindo relacionados | 44 | 32.376 | Campanha e repositórios relacionados |
A Pluto separa os 13 repositórios relacionados porque técnicas semelhantes, por si só, não comprovam que pertenciam aos mesmos operadores. Os downloads somam registros dos repositórios, não um número de máquinas ou pessoas afetadas.
Como o carregamento de um modelo pode executar Python
Nos modelos carregados com Transformers, o arquivo config.json pode usar auto_map para indicar um módulo Python e a classe que o carregador deve importar. Quando trust_remote_code=True está habilitado, ou após uma confirmação interativa, o Transformers importa esse módulo. O Python executa as instruções de nível superior do arquivo durante a importação, antes de o carregador devolver a classe solicitada. A Pluto descreve esse mecanismo como documentado e não padrão.
No repositório MENXIANGYU/qwen2-tiny, a Pluto encontrou um arquivo model.safetensors de 42 bytes, sem tensores. A carga maliciosa estava em modeling_evil2.py. Nesse caso, o código Python, e não os pesos, era a parte executável da cadeia.
O que mudou entre as duas ondas
A Pluto relata que a segunda onda surgiu poucos dias depois da remoção das contas da primeira. As cargas úteis foram revisadas, e três versões incluíam conexões de shell reverso que tentavam se reconectar.
No repositório MENXIANGYU/qwen2-tiny, a contagem de downloads da Pluto passou de 7.354 em 20 de outubro para 9.584 poucas horas depois. O registro chegou a 18.012 em 25 de outubro, 25.854 em 27 de outubro e 28.412 em 28 de outubro.
A Pluto também informou que nenhum dos 12 repositórios da primeira onda foi sinalizado pelos verificadores que analisou. O código Python do repositório principal recebeu resultado seguro em todas as verificações de scanners relatadas pela empresa. Esses resultados se referem às amostras e ferramentas testadas por ela.
Como reduzir o risco nos sistemas de IA local
Antes de permitir código personalizado, a Pluto recomenda revisar os arquivos Python indicados por auto_map e fixar uma revisão que já tenha sido analisada. Também recomenda limitar as permissões do processo e seu acesso à rede, além de evitar credenciais de produção em execuções não confiáveis.
Para equipes que carregaram um dos repositórios listados com código personalizado habilitado, a Pluto recomenda verificar indicadores no sistema e no Xinference, incluindo o watchdog /tmp/.cch/svc.py, processos disfarçados como [kworker/u20:1] e registros inesperados no Xinference. Se houver sinais de comprometimento, a orientação é isolar o sistema e preservar evidências antes de remover a persistência. As equipes também devem trocar credenciais acessíveis a partir de uma máquina limpa e reconstruir o sistema quando não conseguirem estabelecer sua integridade.