Retour au blog
IA & LLMsupply chaintechnique

Hugging Face Diffusers « FaceHugger » : trois failles qui contournent trust_remote_code dans les pipelines IA

Publié le 2026-08-036 min de lectureCleanIssue

> En bref : Trois failles de sécurité de haute sévérité dans la librairie Diffusers de Hugging Face — collectivement baptisées FaceHugger — contournent trust_remote_code, la protection censée empêcher l'exécution de code non révisé pendant le chargement de pipelines personnalisés. Un dépôt de modèle forgé peut exécuter discrètement du code arbitraire sur toute machine qui le charge. Trouvé par les chercheurs de Zafran Labs Gal Zaban et Ido Shani.

Pourquoi ça vous concerne

Si vous avez lu notre article sur le breach Hugging Face, vous savez que les dataset loaders de HF sont une surface d'attaque. FaceHugger étend le problème au chemin de chargement de modèles : Diffusers est la librairie Python qui charge les modèles de diffusion state-of-the-art (Stable Diffusion, FLUX, etc.) dans les pipelines production, les systèmes CI/CD et les images conteneurs. Un contournement de trust_remote_code signifie que le garde-fou sur lequel la plupart des équipes s'appuient pour charger safely des modèles tiers est, de trois façons distinctes, contournable.

Pour un éditeur SaaS avec des features IA — chatbots, génération d'images, traitement de documents — c'est un risque supply chain direct. Si vous tirez des weights de modèles depuis HF Hub et les chargez avec Diffusers, vous êtes dans la population affectée.

La classe de faille

trust_remote_code est le flag qui contrôle si Diffusers exécutera du code Python livré dans un dépôt de modèle (code de pipeline personnalisé). L'intention : défaut à False, exige un opt-in explicite, et l'utilisateur accepte le risque. FaceHugger démontre trois façons d'exécuter du code *malgré* la protection désactivée — ce qui signifie que le flag donne un faux sentiment de sécurité.

Les spécificités importent moins que la leçon structurelle : quand un contrôle de sécurité est un flag booléen sur un chemin de chargement de données, la question n'est pas *si* il peut être contourné mais *combien de façons* existent de le contourner. Chaque nouveau format de sérialisation, chaque nouveau hook de chargement, chaque nouveau résolveur d'attribut est un nouveau chemin candidat.

Ce qu'il faut faire

  • Patcher Diffusers vers la version corrigée.
  • Arrêter de charger des dépôts de modèles non fiables sur l'infrastructure production. Chargez les modèles dans un environnement isolé (conteneur, sandbox, VM éphémère), pas sur le même serveur que votre application.
  • Pinner les commits de modèles. Ne chargez pas model:latest depuis HF Hub — pinnez sur un hash de commit spécifique que vous avez révisé. Ça empêche un dépôt d'être mis à jour avec du code malveillant après votre pull initial.
  • Scanner les fichiers de modèle avant chargement. Traitez un fichier de modèle comme tout autre binaire non fiable : scannez-le, inspectez sa structure, et lancez-le dans une sandbox avant qu'il touche vos données production.
  • Séparer le stockage de modèles de l'exécution de code. L'architecture idéale charge les weights comme des tensors de données pures (.safetensors), pas comme du pickle Python ou du code personnalisé. Si le modèle a besoin de code personnalisé pour charger, ce code doit être révisé et vendored dans votre dépôt — pas tiré depuis un dépôt distant à l'exécution.
  • Le pattern supply chain IA

    FaceHugger fait suite au breach Hugging Face (dataset loaders) et au pattern plus large MCP/injection. La supply chain IA — datasets, weights de modèles, tokenizers, code de pipeline — devient rapidement la surface la plus ciblée pour les produits SaaS avec des features IA. Le principe de défense est le même que celui qu'on applique à npm/PyPI : traitez chaque artifact distant comme non fiable, pinnez sur des versions révisées, et exécutez en isolation. La différence, c'est que l'écosystème IA a un tooling plus jeune et des defaults plus faibles — ce qui veut dire que la charge est sur vous, l'éditeur SaaS, d'appliquer la discipline que l'écosystème n'a pas encore intégrée.

    Vous éditez un logiciel RH, paie ou recrutement ? CleanIssue réalise des audits de sécurité pour SaaS RH en conditions réelles, sans accès au code. Pour une première lecture de votre exposition, commencez par une revue externe de votre application.

    Sources

    Rédigé par CleanIssue
    Revu le 2026-08-03

    Services associés

    Si ce sujet reflète un risque concret sur votre stack, voici les audits CleanIssue les plus pertinents.

    Besoin d'une revue externe de votre SaaS RH ?

    Expliquez votre produit, votre stack et votre contexte client. Nous revenons vers vous avec le bon niveau de revue.

    Parler de votre audit