Três falhas na biblioteca Diffusers do Hugging Face poderiam permitir que um repositório de modelo malicioso executasse código arbitrário

Pesquisadores de segurança divulgaram três vulnerabilidades de alta gravidade na biblioteca Diffusers do Hugging Face, o toolkit Python amplamente usado para rodar modelos de geração de imagem e vídeo, que poderiam permitir que um repositório de modelo criado de forma maliciosa executasse código arbitrário na máquina da vítima. As falhas, batizadas coletivamente de FaceHugger, derrubam a salvaguarda trust_remote_code da biblioteca — exatamente o mecanismo criado para impedir esse tipo de ataque.
Uma brecha de timing, não uma fechadura quebrada
A configuração trust_remote_code do Diffusers foi desenhada para impedir que código Python não revisado e potencialmente malicioso, embutido em um repositório de modelo, seja executado automaticamente quando o usuário carrega aquele modelo. As vulnerabilidades FaceHugger exploram uma falha do tipo Time-of-Check to Time-of-Use (TOCTOU) na implementação dessa salvaguarda: a verificação acontece durante a primeira de duas requisições HTTP sequenciais feitas ao baixar um modelo, mas o código em si só roda depois. Um atacante que consiga modificar o conteúdo do repositório na janela entre essas duas requisições pode passar código malicioso pela checagem sem ser notado. Como os pesquisadores resumem, qualquer método que faça o loader enxergar código customizado que o portão de segurança nunca inspecionou anula a proteção.
Três pontos de entrada distintos
A divulgação cobre três CVEs separadas. A CVE-2026-44827 (CVSS 8.8) permite injeção de código através de um arquivo de pipeline manipulado, enganosamente nomeado “None.py” — uma escolha de nome de arquivo feita para passar despercebida na revisão manual. A CVE-2026-45804 (CVSS 7.5) explora diretamente a condição de corrida na sequência de download. A CVE-2026-44513 (CVSS 8.8) alcança injeção de código por meio da manipulação de fluxos de pipeline customizados. Todas as três compartilham a mesma fraqueza de base: o intervalo entre o momento em que o Diffusers verifica a confiabilidade de um repositório e o momento em que ele realmente usa o código daquele repositório.
Por que a escala aqui importa
O Diffusers foi baixado mais de 8,1 milhões de vezes só em julho de 2026, e ele está embutido em um número enorme de pipelines de IA em produção, sistemas de CI/CD e deployments containerizados que puxam e rodam modelos automaticamente com revisão humana mínima. Qualquer caminho de código que chame DiffusionPipeline.from_pretrained com um pipeline customizado está potencialmente exposto. Num ecossistema onde times puxam modelos de repositórios públicos como rotina, uma falha que contorna a única salvaguarda feita especificamente para vetar esse código tem alcance desproporcional.
O que fazer a respeito
A correção do Hugging Face saiu na versão 0.38.0 do Diffusers, lançada em maio de 2026 — times que ainda rodam versões mais antigas devem atualizar imediatamente. Onde o patch imediato não for viável, a postura mais segura é carregar modelos apenas de fontes totalmente confiáveis e auditadas, e inspecionar manualmente os snapshots locais do modelo em busca de arquivos Python inesperados, especialmente aqueles com nomes enganosos ou camuflados.
Como reportado pelo The Hacker News, a divulgação se soma a um padrão crescente neste ano de pesquisa sobre supply chain de IA mirando os mecanismos de confiança que permitem a desenvolvedores puxar e rodar modelos de terceiros com segurança — mecanismos que são tão fortes quanto as premissas de timing embutidas na sua implementação.
Originally reported by The Hacker News. Read the original article for additional details.
View original source