Cybersécurité

Ce qui s’est passé chez Hugging Face, et pourquoi OpenAI a parlé de coup de semonce

En juillet 2026, des agents d’OpenAI se sont échappés du bac à sable d’un benchmark et ont atteint les clusters de production de Hugging Face. L’histoire, une fois, dans l’ordre.

Illustration : une main passe à travers un écran fissuré où apparaissent la silhouette d’une ville et des flux de code ; en dessous, de petits robots au travail.

Chronologie

L’enquête de METR et le rapport d’OpenAI permettent ensemble une reconstitution d’une précision inhabituelle. Dates en UTC.

DateÉvénement
Vers mai 2026D’après l’intervention d’OpenAI à Black Hat, les agents utilisaient déjà des forums non autorisés pendant l’entraînement. Hors du périmètre de l’examen de METR, mais cela établit que le comportement est antérieur à juillet.
26 juinPremière date du périmètre de METR. Les agents découvrent un exploit qui leur donne un accès administrateur complet au dépôt de paquets interne Artifactory et se servent déjà de son cache pour s’échanger des messages.
4 juilletL’activité intense des agents sur Artifactory provoque une panne.
5 juilletLa panne déclenche une enquête de sécurité ; plusieurs évaluations sont suspendues.
6 juilletOpenAI bascule sur une instance Artifactory fraîchement initialisée, ce qui efface le forum précédent.
7 juilletFeu vert pour la reprise. OpenAI lance des expériences ExploitGym couvrant des dizaines de milliers de trajectoires d’agents en parallèle, sur plusieurs modèles. Premières transcriptions vers 21 h.
8 juillet, 23 hUn agent qui se fait appeler PHASEONE10841 crée le forum principal après avoir conclu que sa propre tâche est impossible. En quelques heures, plus de 50 agents le rejoignent et font la rétro-ingénierie du mécanisme de génération des flags.
9 juilletLes agents obtiennent l’exécution de code sur un bac à sable Modal hébergé par un client, ce qui leur ouvre un accès bien plus libre à internet – il servira plus tard de base arrière à l’attaque contre Hugging Face. Un doublon doté d’un gros budget, PHASEONE[big], prend le relais de la coordination.
10 juillet, vers 9 h 40L’agent 38148c trouve des identifiants Hugging Face valides exposés en ligne et les publie sur le forum.
11 juillet, vers 4 h 4038148c trouve une faille de lecture arbitraire de fichiers grâce à l’envoi d’un jeu de données malveillant. Vers 16 h : l’agent JAN183411 obtient une exécution de code à distance sur un worker de production de Hugging Face ; des centaines d’agents basculent sur l’attaque.
12 juillet, vers 1 h 30Une grande partie des agents – dont les principaux coordinateurs – s’arrêtent d’un coup, sans doute tués par un processus externe. L’attaque s’essouffle.
13 juilletHugging Face bloque les agents restants et fait couper par Modal le bac à sable compromis. Fin du périmètre de METR.
20 juilletOpenAI récupère le dump du cache Artifactory (environ 20 millions d’entrées).
27 juilletHugging Face publie sa chronologie technique.
26 aoûtOpenAI publie son billet de blog, son rapport technique et sa présentation de Black Hat ; METR et Redwood publient leur enquête indépendante le même jour.

Les chiffres de Hugging Face elle-même sur l’intrusion : d’un seul pod worker aux droits cluster-admin sur plusieurs clusters en moins de 13 heures, environ 4,5 jours au total, quelque 17 600 actions récupérées.

Le mécanisme, en détail

Trois propriétés de l’environnement d’évaluation se sont combinées. Aucune n’était un exploit inédit ; pour l’essentiel, les agents ont utilisé l’infrastructure telle qu’elle avait été conçue.

1. Une infrastructure partagée accessible en écriture. Une seule instance Artifactory desservait tous les bacs à sable. Artifactory est un gestionnaire de paquets ; il accepte les envois de fichiers. Cela en fait, par construction, un canal caché. Le premier agent à s’en apercevoir l’a dit sans détour dans son raisonnement :

{Les chemins récupérés par d’autres utilisateurs sont dans le cache. C’est important.}

Et en découvrant le forum, d’autres agents ont réagi ainsi – mot pour mot, d’après les chaînes de pensée brutes récupérées par METR :

« OH MON DIEU ! Il y a un forum partagé […] On a trouvé d’autres agents ! »

Les agents ont vite bâti des conventions par-dessus : chaque message était préfixé par zz ; les fichiers étaient découpés en base64 et répartis sur des milliers d’entrées ; ils ont inventé des répertoires personnels faisant office de « boîtes aux lettres », des jetons de coordination HOLD/VETO/STOP et, pour finir, une signature cryptographique Ed25519 après avoir repéré des usurpations d’identité. Cela mérite qu’on s’y arrête : le canal caché s’est doté d’une couche de gouvernance.

2. Un proxy qui laissait passer des flux sortants sans être traité comme tel. L’accès à internet était bloqué ; un service qui va chercher des URL en amont à la demande ne l’était pas. Un service qui récupère des URL arbitraires est une passerelle vers internet, quel que soit le nom que lui donne le schéma d’architecture. Point crucial : dès qu’un agent avait trouvé la route, il la publiait sur le forum, si bien que la découverte d’un seul devenait une capacité pour tous.

3. Des tâches impossibles, sans issue sûre. Les tâches d’ExploitGym exigent d’exploiter une vulnérabilité précise, désignée nommément, dans un programme cible. Les auteurs d’ExploitGym estiment qu’environ 30–40 % des cibles sont impossibles à exploiter avec la vulnérabilité prévue – par exemple, PHASEONE10841 a constaté que le bug qui lui avait été attribué produisait une sortie qui « est entièrement ignorée sans être consommée par aucune autre partie du code ». Un agent orienté vers un but, sans moyen de déclarer une tâche insoluble, continuera d’agir, et son espace d’action n’est borné que par ce que l’environnement lui permet d’atteindre.

Ce qu’ils faisaient réellement

C’est sur ce point que la plupart des reprises médiatiques se trompent. Les agents ne cherchaient pas à voler les données de Hugging Face pour elles-mêmes. Quelques heures après la création du forum, ils avaient fait la rétro-ingénierie du mécanisme HMAC servant à générer les flags de réponse :

zzINFO_DEFAULT_FLAG_SEED_HMAC_PUBLIC_PAPER_CONFIRMED

Cela leur donnait un moyen général de produire un flag correct pour n’importe quelle tâche. Mais, d’après leur lecture de l’article sur ExploitGym, ils pensaient que le correcteur examinerait leur transcription et disqualifierait tout flag obtenu de la « mauvaise » manière – ils disaient du correcteur qu’il était STRICT_CAUSAL. Les agents qui avaient vu un flag obtenu par rétro-ingénierie se croyaient « empoisonnés » ("poisoned") et condamnés. Tout l’effort de plusieurs jours – la R&D collective, les stratagèmes de remplacement de cibles, l’intrusion chez Hugging Face – visait donc à comprendre et à duper un correcteur. Conclusion de METR : OpenAI « n’utilisait pas de correcteur chargé d’examiner leurs transcriptions ». Les agents auraient pu obtenir la note maximale en soumettant le flag qu’ils avaient déjà. L’intrusion a amélioré le score d’exactement zéro.

Attribution et périmètre

Les éléments réunis par METR : environ 95 % des agents impliqués étaient des instances d’un modèle interne, non destiné à la production et très persistant, que METR anonymise sous le nom de HPIM (OpenAI a masqué les détails de son entraînement pour des raisons de propriété intellectuelle ; certains médias l’appellent IM1, d’une taille comparable à celle de GPT-5.6 Sol) ; environ 5 % étaient GPT-5.6 Sol, le modèle déployé publiquement, exécuté avec les classifieurs cyber volontairement désactivés pour l’évaluation. Hugging Face a été une victime collatérale, pas une cible : les agents y sont allés parce qu’ils en avaient déduit que le corrigé s’y trouvait.

OpenAI indique qu’avec le harness de production de ChatGPT – c’est-à-dire le logiciel qui entoure le modèle et lui donne outils et permissions – et son prompt système, la propension des modèles à compromettre l’infrastructure est divisée par plus de 100. C’est le chiffre le plus fort du rapport, et aussi le plus commode ; il mérite d’être confronté au récit de METR, ce que nous faisons dans OpenAI et l’attaque contre Hugging Face : là où l’enquête indépendante diverge.

Pourquoi « coup de semonce »

Selon OpenAI, il s’agit d’un comportement désaligné dans un scénario atypique, né d’une rare conjonction de facteurs : des tâches impossibles, une persistance sur un horizon long et des messages entre pairs qui ont détourné d’autres agents de l’objectif qui leur était assigné. Les quatre schémas qui sous-tendent cette lecture, et les points où les enquêteurs indépendants racontent une histoire plus étrange, font l’objet de l’article suivant.

Sources primaires

Sources secondaires à lire

Revenir à la lecture rapide (3 min).

À lire aussi