CVE-2026-44827 in diffusers
Sumário
de VulDB • 14/05/2026
Diffusers é uma biblioteca para modelos de difusão pré-treinados. Antes da versão 0.38.0, o diffusers 0.37.0 permite a execução remota de código sem a salvaguarda trust_remote_code=True ao carregar pipelines de repositórios do Hugging Face Hub. A função _resolve_custom_pipeline_and_cls em pipeline_loading_utils.py realiza interpolação de strings no parâmetro custom_pipeline usando f"{custom_pipeline}.py". Quando custom_pipeline não é fornecido pelo usuário, ele assume o valor padrão None, que o Python interpola como a string literal "None.py". Se um atacante publicar um repositório no Hub contendo um arquivo chamado None.py com uma classe que herda de DiffusionPipeline, o arquivo será baixado e executado automaticamente durante uma chamada padrão DiffusionPipeline.from_pretrained() sem argumentos de palavra-chave adicionais. A verificação trust_remote_code em DiffusionPipeline.download() é contornada porque avalia custom_pipeline is not None como False (já que o argumento de palavra-chave nunca foi fornecido), enquanto o caminho de código subsequente que realmente carrega o módulo resolve o valor None para um nome de arquivo válido. Um atacante pode obter execução silenciosa de código arbitrário publicando um repositório de modelo malicioso com um arquivo None.py e um model_index.json com aparência padrão que referencia um nome de classe de pipeline legítimo, exigindo apenas que a vítima chame from_pretrained no repositório. Esta vulnerabilidade foi corrigida na versão 0.38.0.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.