CVE-2026-44513 in diffusers
Sumário
de VulDB • 15/05/2026
Diffusers é uma biblioteca para modelos de difusão pré-treinados. Antes da versão 0.38.0, um bypass de `trust_remote_code` em `DiffusionPipeline.from_pretrained` permite a execução arbitrária de código remoto, apesar do usuário definir `trust_remote_code=False` (ou omiti-lo, que é o padrão). A vulnerabilidade possui três variantes, todas compartilhando a mesma causa raiz — o mecanismo de verificação de `trust_remote_code` foi implementado dentro de `DiffusionPipeline.download()` em vez de no local real de carregamento do módulo dinâmico, portanto, qualquer caminho de código que ignorasse ou contornasse `download()` também contornava a verificação de segurança.
1. `DiffusionPipeline.from_pretrained('repoA', custom_pipeline='attacker/repoB', trust_remote_code=False)` — a verificação era aplicada à lista de arquivos de `repoA` em vez de `repoB`, fazendo com que `pipeline.py` de `repoB` fosse carregado e executado. 2. `DiffusionPipeline.from_pretrained('/local/snapshot', custom_pipeline='attacker/repoB', trust_remote_code=False)` — o ramo de caminho local nunca invocava `download()`, portanto, a verificação nunca era alcançada e o código remoto de `repoB` era executado. 3. `DiffusionPipeline.from_pretrained('/local/snapshot', trust_remote_code=False)` onde o snapshot contém arquivos de componentes personalizados (por exemplo, `unet/my_unet_model.py`) referenciados em `model_index.json` — mesma causa raiz; o caminho local ignorava `download()` e o código do componente personalizado era executado.
Esta vulnerabilidade foi corrigida na versão 0.38.0.
If you want to get best quality of vulnerability data, you may have to visit VulDB.