← AI War Room
Intelligence artificielle

Hugging Face #1 : le repo qui volait des credentials sous couverture OpenAI

Tech4B2B · · 4 min (mis à jour le )
Illustration : Hugging Face #1 : le repo qui volait des credentials sous couverture OpenAI
  • Sujet: Hugging Face #1 : le repo qui volait des credentials sous couverture OpenAI
  • Date:
Le 7 mai, des chercheurs de HiddenLayer identifient un dépôt frauduleux sur Hugging Face — Open-OSS/privacy-filter — qui usurpe l'identité de Privacy Filter, l'outil de détection PII qu'OpenAI avait publié quinze jours plus tôt. En moins de 18 heures, le repo atteint la première place des tendances avec 244 000 téléchargements et 667 likes. Le payload final, un infostealer Rust baptisé Sefirah, exfiltre cookies, tokens Discord, wallets crypto, credentials SSH/FTP/VPN et captures d'écran vers un serveur C2. Hugging Face supprime le dépôt après signalement. Ni OpenAI ni Hugging Face n'avaient réagi publiquement au moment de la publication. L'incident s'inscrit dans une série de campagnes supply chain ciblant spécifiquement l'écosystème open source IA — npm, PyPI, GitHub — depuis début 2026.

OpenAI avait publié Privacy Filter le 22 avril sous licence Apache 2.0 : un modèle open-weight pour détecter et anonymiser des données personnelles dans du texte non structuré. Distribution via Hugging Face et GitHub, des canaux familiers pour les équipes dev. C'est exactement ce que les attaquants ont exploité.

Le dépôt Open-OSS/privacy-filter reprend la model card d'OpenAI quasi mot pour mot, conserve les liens vers la documentation officielle, et ne modifie qu'une chose dans le README : l'instruction d'exécution. Là où le projet légitime ne demande pas de lancer un script local, le repo frauduleux demande de cloner et d'exécuter start.bat sous Windows ou python loader.py sous Linux/macOS.

Le loader.py contient d'abord du code leurre — une classe DummyModel, une sortie d'entraînement simulée, un dataset synthétique. Puis il appelle une fonction nommée _verify_checksum_integrity(). Cette fonction désactive la vérification SSL, décode une URL encodée en base64 pointant vers un paste JSON sur JSONKeeper, extrait le champ cmd et le passe directement à PowerShell dans une fenêtre invisible. L'utilisation de JSONKeeper comme dead drop permet à l'attaquant de changer de payload sans toucher au dépôt.

loader.py → PowerShell → start.bat → escalade de privilèges → Sefirah

Le batch télécharge l'infostealer depuis api.eth-fastscan[.]org, l'ajoute aux exclusions de Microsoft Defender, crée une tâche planifiée qui se fait passer pour le service de mise à jour Edge (MicrosoftEdgeUpdateTaskCore[a-z0-9]{8}), l'exécute en contexte SYSTEM, puis s'autodétruit. La tâche ne persiste pas au redémarrage — c'est un lanceur unique, pas un mécanisme de persistance.

Sefirah pèse environ 1,07 Mo. Il intègre des vérifications de machines virtuelles (VirtualBox, VMware, QEMU, Xen), de sandboxes et de débogueurs, et tente de désactiver AMSI et ETW avant de collecter. Les données exfiltrées vers recargapopular[.]com incluent les profils Chromium et Gecko complets, les tokens Discord, les wallets crypto, les fichiers de configuration FileZilla, les clés SSH et VPN, ainsi que des captures d'écran multi-moniteurs.

HiddenLayer a identifié six autres dépôts utilisant la même infrastructure loader. Le domaine api.eth-fastscan[.]org avait également servi, le 26 avril, un exécutable dont le C2 (welovechinatown[.]info) était déjà documenté dans une campagne de typosquatting npm distribuant WinOS 4.0 — un implant RAT modulaire connu aussi sous le nom ValleyRAT.

Les 244 000 téléchargements et les 667 likes en 18 heures ne correspondent pas aux patterns d'adoption communautaire normaux. HiddenLayer estime que le compteur a été gonflé artificiellement pour pousser le repo en tête du trending — et donc bénéficier du signal de confiance implicite que représente la première place d'une plateforme comme Hugging Face.

Hugging Face intègre depuis 2024 un partenariat avec Protect AI pour le scan de modèles : 4,47 millions de versions scannées au 1er avril 2025, 352 000 problèmes détectés sur 51 700 modèles. La plateforme dispose aussi d'un scan des fichiers pickle, de détection de secrets et d'une certification SOC2 Type 2. Aucun de ces dispositifs n'a bloqué le dépôt avant que HiddenLayer le signale manuellement. La raison est structurelle : le vecteur d'attaque n'est pas un modèle corrompu — c'est un script Python d'apparence normale dans un repo qui ressemble à du code légitime.

Le contexte n'est pas isolé. En mars 2026, le package LiteLLM sur PyPI avait été compromis, exposant des clés API pour Meta, OpenAI et Anthropic. En avril, un package Bitwarden CLI sur npm avait été détourné pendant 90 minutes avec un payload ciblant spécifiquement Claude Code, Cursor et Codex CLI. PyTorch Lightning : 42 minutes. La Commission européenne elle-même avait été touchée via Trivy, un outil de scan de sécurité open source. Ce sont des fenêtres courtes, des insertions ciblées qui exploitent la résolution automatique des dépendances. Un développeur qui lance un git clone au mauvais moment télécharge la version compromise. La fenêtre se referme.


Le problème posé par l'incident Hugging Face va plus loin que la supply chain classique. Un modèle IA est exécuté différemment d'un package logiciel. On lui fait confiance parce qu'il vient d'une source qui ressemble à OpenAI. On lance le script parce que c'est ce qu'on fait quand on teste un modèle. La surface d'attaque s'est élargie au moment exact où les équipes MLOps ont intégré Hugging Face dans leurs pipelines de production.

Les utilisateurs qui ont exécuté start.bat ou python loader.py depuis le dépôt frauduleux sont conseillés de réimager complètement la machine — pas nettoyer, réimager — de ne pas se connecter à aucun compte depuis la machine compromise avant effacement, de faire tourner l'ensemble des credentials, d'invalider les sessions Discord et navigateur, et de remplacer les wallets crypto et leurs seed phrases.

TL;DR

Un repo frauduleux a usurpé Privacy Filter d'OpenAI sur Hugging Face, atteint la première place du trending en 18 heures, et livré un infostealer Rust à des milliers de développeurs.

  • Le dépôt Open-OSS/privacy-filter copiait la documentation OpenAI quasi mot pour mot ; seule la commande d'exécution différait — suffisant pour déclencher toute la chaîne d'infection.
  • Le payload Sefirah désactive Microsoft Defender, se lance en contexte SYSTEM et exfiltre browsers, wallets crypto, tokens Discord et credentials SSH/VPN avant de s'autodétruire.
  • L'incident s'inscrit dans une série de compromissions supply chain ciblant spécifiquement l'écosystème IA open source (npm, PyPI, Hugging Face) depuis début 2026 — avec des fenêtres d'exposition de 42 minutes à 18 heures.

Questions fréquentes

Hugging Face n'a-t-il pas des outils de scan de sécurité?

Si — partenariat avec Protect AI, scan pickle, détection de secrets, SOC2 Type 2. Mais le vecteur ici n'est pas un modèle corrompu : c'est un script Python d'apparence normale dans un repo qui imite du code légitime. Les scanners automatiques n'ont pas intercepté la menace avant le signalement manuel de HiddenLayer.

Comment savoir si mon environnement est compromis?

Si start.bat ou python loader.py a été exécuté depuis Open-OSS/privacy-filter sur une machine Windows, traiter comme compromission totale. HiddenLayer recommande le réimage complet, pas le nettoyage. Vérifier également les six autres dépôts utilisant la même infrastructure loader, listés dans leur rapport du 7 mai.

Pourquoi cibler spécifiquement les développeurs IA?

Les équipes dev et MLOps ont accès à des environnements de production, des API keys, des credentials cloud et des pipelines CI/CD. Un infostealer qui tourne sur la machine d'un data scientist peut exfiltrer des clés Anthropic, OpenAI ou AWS en même temps que les cookies Discord. Le profil de la cible est plus intéressant que celui d'un utilisateur grand public.

Le brief tech qui compte
Chaque matin à 7h, les 5 signaux tech B2B à ne pas manquer.