Três falhas de segurança de alta gravidade foram divulgadas na biblioteca Diffusers, da Hugging Face, e podem permitir que repositórios de modelos manipulados executem código arbitrário de forma furtiva nas máquinas que os carregam.
O problema expõe a cadeia de suprimentos de IA a riscos de segurança.
“Essas vulnerabilidades estão contornando o trust_remote_code, a proteção criada para impedir a execução de código não revisado durante o processo de carregamento de pipelines personalizados”, afirmaram os pesquisadores da Zafran Labs, Gal Zaban e Ido Shani, em análise publicada na semana passada.
As falhas foram reunidas sob o nome FaceHugger.
Com a Hugging Face ganhando o apelido de “GitHub da era da IA” e suas bibliotecas e repositórios amplamente presentes em ambientes corporativos, vulnerabilidades em componentes como o Diffusers podem dar aos invasores acesso amplo.
Isso ocorre porque a biblioteca costuma estar incorporada em pipelines de produção, sistemas de CI/CD e imagens de container.
O Diffusers é um pacote em Python que funciona como biblioteca de modelos de difusão pré-treinados de última geração, usados para gerar vídeos, imagens e áudio.
Segundo estatísticas do pepy.tech, o pacote foi baixado mais de 8,1 milhões de vezes em julho de 2026.
Uma das principais capacidades da biblioteca é carregar localmente um modelo de um repositório do hub da Hugging Face por meio da API DiffusionPipeline.
Esse processo usa, por sua vez, um arquivo de configuração para inicializar classes específicas de pipeline e componentes, além de código personalizado de pipeline.
O parâmetro trust_remote_code no Diffusers é uma proteção de segurança que controla se o código Python personalizado hospedado dentro de um repositório de modelo pode ser executado durante o carregamento com from_pretrained().
Quando definido como True, ele permite a execução de código personalizado.
Quando definido como False ou omitido, o código não verificado é bloqueado.
“A causa raiz de todas as diferentes variantes de RCE [...] é que a verificação de confiança fica inteiramente na primeira fase”, explicou a Zafran.
“Portanto, qualquer método que faça o carregador enxergar código personalizado que a barreira não viu permite burlar o mecanismo trust_remote_code.”
Cada variante foi associada a um caso de Time-of-Check to Time-of-Use, ou TOCTOU, em que o download do modelo foi projetado como duas requisições HTTP sequenciais e não atômicas, em vez de uma única operação atômica, e a barreira trust_remote_code foi configurada para atuar apenas sobre a primeira.
As vulnerabilidades são as seguintes:
CVE-2026-44827
, com pontuação CVSS 8,8: uma vulnerabilidade de injeção de código que permite carregar código arbitrário pelo fluxo custom_pipeline a partir de um repositório do Hub por meio de um pipeline manipulado com o nome “None.py”, mesmo com trust_remote_code=False ou quando o parâmetro é omitido, o que é o padrão.
CVE-2026-45804
, com pontuação CVSS 7,5: uma vulnerabilidade de condição de corrida que permite introduzir código arbitrário em um repositório ao modificar a configuração entre as chamadas HTTP hf_hub_download e snapshot_download para o Hub, levando à execução de código.
CVE-2026-44513
, com pontuação CVSS 8,8: uma vulnerabilidade de injeção de código que permite carregar código arbitrário pelo fluxo custom_pipeline a partir de um repositório do Hub, apesar de trust_remote_code=False ou de o parâmetro ser omitido.
Após a divulgação responsável, as falhas foram corrigidas na versão 0.38.0 do Diffusers, lançada no início de maio de 2026.
Qualquer usuário que invoque DiffusionPipeline.from_pretrained com pipelines personalizados é afetado.
“O problema de fundo é que artefatos obtidos de repositórios de IA são frequentemente tratados como dados passivos, quando arquivos de configuração, carregadores e código personalizado de pipeline podem entrar silenciosamente na categoria de código executável e transformar um carregamento rotineiro de modelo em um vetor de acesso inicial”, acrescentaram os pesquisadores.
Se a aplicação imediata de patch não for uma opção, os mantenedores do projeto recomendaram as seguintes medidas de mitigação:
Chamar from_pretrained apenas com pretrained_model_name_or_path, custom_pipeline e diretórios locais de snapshot provenientes de fontes totalmente confiáveis e auditadas.
Não passar custom_pipeline= apontando para um repositório do Hub diferente do pretrained_model_name_or_path principal antes de ler o arquivo pipeline.py.
Antes de chamar from_pretrained em um snapshot local, inspecionar o snapshot em busca de arquivos *.py inesperados, especialmente nos subdiretórios de componentes, como unet/ e scheduler/, e na raiz do snapshot.
“Essas vulnerabilidades reforçam a necessidade crítica de tratar repositórios de modelos de IA como código não confiável, especialmente à medida que a dependência corporativa em plataformas como a Hugging Face continua crescendo”, disse a Zafran.
“O download rotineiro de um modelo pode facilmente se tornar um vetor de execução de código arbitrário se barreiras de segurança como trust_remote_code forem contornadas.”
Publicidade
Tenha acesso aos melhores hackers éticos do mercado através de um serviço personalizado, especializado e adaptado para o seu negócio. Guardsi: qualidade, confiança e especialidade em segurança ofensiva de quem já protegeu centenas de empresas. Saiba mais...