olimposec.com
Radar / Bugs / OS-2026-142
risco altoSUPPLYCVE-2026-44827, CVE-2026-45804, CVE-2026-445132026-08-03 · 2 min de leitura
0

Três falhas críticas no Hugging Face Diffusers permitem execução remota de código via repositórios de modelos maliciosos

Resumo executivo

Pesquisadores da Zafran Labs divulgaram três vulnerabilidades de alta severidade na biblioteca Diffusers da Hugging Face que permitem a um repositório de modelo malicioso executar código arbitrário na máquina de quem o carrega, contornando a proteção `trust_remote_code=False`. As falhas foram corrigidas na versão 0.38.0, lançada em maio de 2026.

O Diffusers é uma das bibliotecas mais usadas para carregar e rodar modelos de difusão (geração de imagem, áudio, etc.) hospedados no Hub da Hugging Face. Sua salvaguarda central contra código malicioso é o parâmetro `trust_remote_code`: quando desativado (o padrão recomendado), a biblioteca não deveria executar código Python arbitrário vindo do repositório do modelo. As três falhas mostram que essa promessa não se sustentava em cenários realistas de uso.

Duas delas (identificadas como CVSS 8.8 cada) exploram o fluxo de "custom pipeline": um repositório malicioso consegue injetar código — em um caso, através de um arquivo de pipeline customizado chamado literalmente `None.py` — que escapa da checagem de `trust_remote_code=False` e é executado mesmo assim. A terceira falha (CVSS 7.5) é uma condição de corrida entre duas chamadas HTTP não atômicas usadas para baixar o modelo (`hf_hub_download` e `snapshot_download`): entre a primeira requisição, que valida a configuração, e a segunda, que efetivamente baixa os arquivos, um atacante que controle a resposta do servidor consegue trocar o conteúdo entregue. A causa raiz comum apontada pelos pesquisadores é arquitetural: a checagem de confiança acontece inteiramente na primeira fase da comunicação, e nada garante que o que é validado ali seja o mesmo que acaba sendo executado depois.

Na prática, isso significa que baixar e carregar um modelo de difusão de fonte não totalmente confiável — mesmo com `trust_remote_code=False` explicitamente configurado, a prática recomendada — podia resultar em execução de código arbitrário na máquina da vítima, típico do padrão de "supply chain attack" que já afeta outros formatos de modelo (pickle, checkpoints maliciosos, etc.), mas aqui atingindo diretamente o mecanismo pensado para prevenir justamente esse risco.

A correção está disponível desde a versão 0.38.0 (maio de 2026); qualquer ambiente que use `DiffusionPipeline.from_pretrained` com pipelines customizados em versões anteriores deve atualizar. Para times que operam infraestrutura de MLOps consumindo modelos de terceiros do Hub, o caso reforça que `trust_remote_code=False` sozinho não deve ser tratado como controle suficiente de sandboxing — vale a pena isolar o carregamento de modelos não auditados em ambientes com privilégios mínimos, independente da configuração da biblioteca.

Fonte ↗
0 comentários

Entre para comentar.

Nenhum comentário ainda — seja o primeiro.