CVE-2026-44827 in diffusers
Zusammenfassung
von VulDB • 27.05.2026
Diffusers ist eine Bibliothek für vortrainierte Diffusionsmodelle. Vor Version 0.38.0 ermöglicht diffusers 0.37.0 eine Remote-Code-Ausführung (RCE) ohne die Schutzmaßnahme `trust_remote_code=True`, wenn Pipelines aus Hugging Face Hub-Repositories geladen werden. Die Funktion `_resolve_custom_pipeline_and_cls` in `pipeline_loading_utils.py` führt eine String-Interpolation für den Parameter `custom_pipeline` mit `f"{custom_pipeline}.py"` durch. Wenn `custom_pipeline` vom Benutzer nicht angegeben wird, lautet der Standardwert `None`, den Python als die wörtliche Zeichenkette `"None.py"` interpoliert. Wenn ein Angreifer ein Hub-Repository veröffentlicht, das eine Datei mit dem Namen `None.py` enthält, die eine Klasse definiert, die von `DiffusionPipeline` erbt, wird diese Datei automatisch heruntergeladen und während eines Standardaufrufs von `DiffusionPipeline.from_pretrained()` ohne zusätzliche Schlüsselwortargumente ausgeführt. Die Überprüfung von `trust_remote_code` in `DiffusionPipeline.download()` wird umgangen, da sie `custom_pipeline is not None` als `False` bewertet (da das kwarg nie angegeben wurde), während der nachgelagerte Codepfad, der das Modul tatsächlich lädt, den `None`-Wert in einen gültigen Dateinamen auflöst. Ein Angreifer kann eine stille, beliebige Code-Ausführung erreichen, indem er ein bösartiges Modell-Repository mit einer `None.py`-Datei und einer standardmäßig aussehenden `model_index.json` veröffentlicht, das einen legitimen Pipeline-Klassennamen referenziert; dies erfordert lediglich, dass ein Opfer `from_pretrained` für das Repository aufruft. Diese Schwachstelle wurde in Version 0.38.0 behoben.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.