# Arquivos de modelo do Hugging Face podem executar código oculto

Published: 2026-10-12

Pacotes de modelos maliciosos podem executar código durante o carregamento não seguro. Três exemplos documentados explicam shells reversos de Pickle, comportamento de scanner de arquivos corrompidos e confusão de nomes de modelos demonstrada em pesquisa, com limites claros nas alegações de roubo de credenciais.

Canonical: https://thedailydiff.dev/pt-BR/video/2026-10-12-huggingface-model-malware/

## O que este vídeo aborda

- Pesos de modelos numéricos, serialização executável e código de repositório personalizado são coisas diferentes.
- JFrog e ReversingLabs documentaram payloads de shell reverso; seus relatórios selecionados não estabelecem roubo de credenciais de vítimas nomeadas.
- A Confusão de Modelo da Checkmarx foi uma demonstração de pesquisa que exigiu um modelo remoto correspondente e carregamento inseguro.
- Prefira safetensors e loaders corrigidos, revise e fixe o código personalizado e isole pacotes não familiares de segredos pessoais e acesso desnecessário à rede.

## Capítulos

- 0:00 Como um download de modelo pode convidar um hóspede?
- 0:35 Como um loader executa as instruções da encomenda?
- 1:09 Quais segredos estão ao alcance do processo?
- 1:38 Por que um caminho local ausente pode se tornar um modelo remoto?
- 1:55 Como pacotes corrompidos evadiram o scanner antigo?
- 2:44 O que mantém a chave fora do alcance do hóspede?
- 3:12 Por que eu carimbaria isso com NEEDS REVIEW?

## Transcrição traduzida

Traduzido da narração original em inglês. Áudio e legendas disponíveis são controlados pelo YouTube.

### Como um download de modelo pode convidar um hóspede?

0:00 Um arquivo de modelo são apenas números no disco. Carregar um pacote Hugging Face malicioso abriu um shell remoto, o que é uma interpretação ambiciosa de IA local. Como o carregamento se torna execução? Quais segredos ele pode alcançar? O que realmente o impede? E mantenha um enigma em mente. Um modelo pode falhar ao carregar depois que a parte perigosa já aconteceu.

0:18 Este é o The Daily Diff, por dentro. Hugging Face é uma plataforma para compartilhar modelos de machine learning, conjuntos de dados e aplicações. Pesos de modelo são os números aprendidos. Um repositório também pode conter configuração e código Python. O perigo aqui é a embalagem executável entrando em seu computador quando você a carrega. Pickle armazena objetos Python com instruções para reconstruí-los.

### Como um loader executa as instruções da encomenda?

0:37 Um loader inseguro pode seguir essas instruções e chamar funções enquanto desempacota. Baixar os bytes coloca a encomenda em seu disco. A desserialização a abre. Em algum lugar, um formato de arquivo foi promovido a administrador de sistema não remunerado. JFrog relatou Goober Two em fevereiro de 2024. Seu payload Pickle abriu um shell reverso, conectando-se externamente para oferecer acesso a comandos remotos. O repositório foi excluído. JFrog também encontrou pistas sugerindo envolvimento de pesquisadores,

1:02 então a atribuição é incerta. O hóspede indesejado foi documentado. O roubo de credenciais de vítimas reais não foi estabelecido.

### Quais segredos estão ao alcance do processo?

1:09 O código executado como seu usuário pode ler tudo o que esse processo pode ler. Uma chave de nuvem montada ou um token acessível se torna um alvo possível. Enviá-lo também requer uma rota de rede funcionando. Apenas pesos numéricos não têm poderes mágicos de credencial. Suas permissões fornecem a parte interessante do cartão do modelo. Há outra porta. Alguns modelos pedem para você confiar em código remoto, o que autoriza Python do repositório. Arquivos safetensor podem estar ao lado desse código.

1:32 Verificar o formato do peso cobre uma entrada, enquanto o código do repositório ainda está esperando que você lhe entregue um crachá de visitante.

### Por que um caminho local ausente pode se tornar um modelo remoto?

1:38 Checkmarx demonstrou a Confusão de Modelo. Um caminho de modelo local ausente poderia ser resolvido para um repositório público com um nome correspondente. Combine isso com o código remoto habilitado, e o pacote errado pode ser executado. Esta foi uma demonstração de pesquisa envolvendo uma amostra de uma empresa não nomeada, corrigida em um dia. Uma pasta ausente adquiriu um proprietário. ReversingLabs relatou duas amostras em fevereiro de 2025,

### Como pacotes corrompidos evadiram o scanner antigo?

1:58 chamando a técnica de nullify AI. Ambas continham shells reversos. Sua embalagem seven zip bloqueou o carregamento comum do PyTorch, então este caminho exigiu extração e desserialização insegura. Streams Pickle corrompidas também expuseram um ponto cego do scanner. Uma varredura falha merece investigação antes que alguém abra a encomenda. No teste inofensivo dos pesquisadores, as instruções escreveram um arquivo antes que o loader

2:18 atingisse a parte corrompida e levantasse um erro. Imagine abrir uma encomenda, soltar o guaxinim, e depois perceber que a etiqueta de envio é inválida. A mensagem de erro chega com excelente gramática e péssimo timing. Hugging Face removeu as amostras relatadas em 24 horas e mudou o scanner. Essa descoberta específica provocou uma correção. Uma varredura de segurança é uma evidência útil, e tratar cada erro de scanner como um atestado de boa saúde continua sendo uma interpretação notavelmente generosa de falha.

2:43 Prefira safetensors e loaders corrigidos e atualizados.

### O que mantém a chave fora do alcance do hóspede?

2:46 PyTorch restringiu seu loader padrão a partir da versão 2.6. Revise o código personalizado e fixe a revisão revisada. Execute pacotes desconhecidos isoladamente, sem chaves pessoais, com acesso restrito à rede. Um contêiner cheio de credenciais montadas é uma cesta de presentes com namespaces. Aquele enigma inicial tem uma resposta. A falha no carregamento informa onde a execução parou. Instruções anteriores já podem ter sido executadas.

3:08 Mantenha os segredos fora de seu alcance antes de abrir a encomenda. Veredito, por dentro.

### Por que eu carimbaria isso com NEEDS REVIEW?

3:16 loader. O download gratuito deve vir com um modelo, e a lista de convidados deve permanecer minha decisão. Se você preferir ler isso a me ouvir dizer, o diff chega à sua caixa de entrada todas as manhãs, gratuitamente em the daily diff dot dev, link abaixo. E esse é o diff de hoje. Sou Niko da Axrisi. Faça o merge com responsabilidade.

## Fontes

- [Data Scientists Targeted by Malicious Hugging Face ML Models with Silent Backdoor](https://jfrog.com/blog/data-scientists-targeted-by-malicious-hugging-face-ml-models-with-silent-backdoor/) — JFrog
- [Malicious ML models discovered on Hugging Face platform](https://www.reversinglabs.com/blog/rl-identifies-malware-ml-model-hosted-on-hugging-face) — ReversingLabs
- [AI Model Confusion: An LLM/AI Model Supply Chain Attack](https://checkmarx.com/zero-post/hugs-from-strangers-ai-model-confusion-supply-chain-attack/) — Checkmarx Zero
- [Pickle Scanning](https://huggingface.co/docs/hub/en/security-pickle) — Hugging Face
- [Safetensors](https://huggingface.co/docs/safetensors/en/index) — Hugging Face
- [Loading custom models](https://huggingface.co/docs/transformers/en/models) — Hugging Face
- [Serialization semantics](https://docs.pytorch.org/docs/2.14/notes/serialization.html) — PyTorch
