Des chercheurs utilisent Claude pour pénétrer le dépôt de code interne d'OpenAI

Trois chercheurs de la start-up de sécurité Hacktron AI — Harsh Jaiswal, Mohan Pedhapati et Rahul Maini — ont, fin juillet, utilisé Claude Opus 5 d'Anthropic pour construire une chaîne d'exploitation menant du forum de développeurs d'OpenAI jusqu'au dépôt de code interne de l'entreprise elle-même. L'équipe a publié le déroulé complet sur son blog le 13 septembre, et cette semaine, le Wall Street Journal puis The Information ont repris l'affaire, ce qui lui a donné un écho bien plus large.

Toute la chaîne est partie d'une simple image et s'est terminée dans le dépôt principal d'OpenAI, openai/openai. Comme preuve, les chercheurs y ont ouvert une pull request inoffensive (numéro #1186742), sans lire la moindre donnée sensible.

Une image HEIF qui a transpercé le forum

Le forum de développeurs d'OpenAI, community.openai.com, tourne sur Discourse. La bibliothèque d'images intégrée à Discourse ne reconnaît pas le format HEIF ; les fichiers de ce type sont donc transmis à ImageMagick, qui appelle à son tour libheif pour le décodage.

Le problème vient de libheif. Cette bibliothèque comporte une vulnérabilité de dépassement de tampon sur le tas, et la version 1.19.7 utilisée dans le dépôt Debian n'avait pas reçu le rétroportage du correctif de sécurité correspondant. À partir de là, les chercheurs ont fabriqué une image HEIF malveillante qui, une fois téléversée, leur a donné une exécution de code à distance sur le serveur du forum. Selon Hacktron, les versions de libheif concernées vont de 1.19.7 à 1.23.x, sur plusieurs distributions Linux.

Prendre le contrôle du serveur du forum n'était que la première étape. Ce serveur conservait les tokens d'authentification des utilisateurs connectés, y compris ceux d'employés d'OpenAI. Les chercheurs ont découvert que certains de ces tokens du forum pouvaient être utilisés directement sur ChatGPT. Hacktron insiste particulièrement sur ce point dans son billet de blog :

"the vulnerability to escalate is not Discourse-specific. It is an OpenAI SSO issue"

La vulnérabilité permettant l'élévation de privilèges n'est pas propre à Discourse ; c'est un problème du système d'authentification unique (SSO) d'OpenAI.

Grâce à cette brèche, les chercheurs ont pris le contrôle des comptes ChatGPT et Codex de plusieurs employés. Dans un cas, le Codex était relié à l'organisation GitHub d'OpenAI ; les chercheurs ont envoyé un prompt à ce Codex, l'amenant à ouvrir lui-même une pull request dans le dépôt interne. Selon Hacktron, cette même connexion donnait aussi accès à des services comme Slack et la messagerie, mais l'équipe n'y a pas touché.

Opus 4.8 n'y arrivait pas, Opus 5 a mis trois heures

C'est le rôle du modèle qui occupe la plus grande partie du billet de blog. Le dépassement de tampon dans libheif est difficile à exploiter dans un environnement avec ASLR (randomisation de l'espace d'adressage) activé ; l'équipe avait déjà essayé plusieurs fois avec Claude Opus 4.8, sans succès.

"Opus 4.8 struggled across several sessions to produce a working exploit with ASLR enabled. Within hours of Opus 5's release, we gave it the same problem and it succeeded."

Opus 4.8 a peiné sur plusieurs sessions sans parvenir à produire un exploit fonctionnel avec l'ASLR activé ; quelques heures après la sortie d'Opus 5, nous lui avons soumis le même problème, et il a réussi.

Selon la chronologie donnée par l'équipe, Opus 5 est sorti le 24 juillet, et en environ trois heures, le modèle a d'abord écrit un exploit fonctionnel pour une machine ARM64 locale, avant de le porter vers l'environnement x86-64 avec jemalloc utilisé par le serveur Discourse. Les chercheurs ont laissé Claude tourner dans une boucle autonome, testant à répétition contre une instance Discourse Cloud qu'ils avaient eux-mêmes montée ; le lendemain matin, en vérifiant, il avait déjà obtenu l'exécution de code et lu le fichier /etc/hosts comme preuve. Le même script a ensuite fonctionné sur l'instance d'OpenAI.

De la découverte à la violation complète, il s'est écoulé environ 72 heures. Selon Hacktron, l'ensemble de cette recherche, baptisée « HEIF Heist », a coûté moins de 3 000 dollars en tokens.

Ce n'est pas la première fois que cette entreprise utilise Claude pour écrire des exploits. Elle avait déjà publié un bilan sur l'utilisation de Claude Opus pour écrire un exploit visant Chrome ; la conclusion, à l'époque, était que le modèle pouvait accomplir l'essentiel du travail, mais que les étapes clés nécessitaient encore une intervention humaine. Cette fois, sur toute la chaîne allant du forum au dépôt de code, la part du travail humain a nettement diminué. Selon la description de l'équipe, le code d'exploitation de la partie Discourse a été produit presque entièrement par le modèle lui-même.

Correctif et prime

La réaction d'OpenAI n'a pas été lente. Après le signalement des chercheurs le 25 juillet, OpenAI a confirmé le correctif en environ 14 heures, à 22 h 49 (UTC) le jour même. Discourse a confirmé la réception du rapport le dimanche et livré le correctif le lundi. Le 1er septembre, OpenAI a versé une prime de 6 500 dollars.

Pour l'instant, on ne dispose que du récit unilatéral de Hacktron. OpenAI a-t-elle vérifié les journaux d'accès de ce serveur de forum avant la correction, quelqu'un d'autre a-t-il exploité la même chaîne, les tokens des employés ont-ils tous été révoqués : autant de points qui, à l'heure de la publication, n'ont fait l'objet d'aucune clarification publique.

Pour les développeurs en Chine, cette affaire offre deux points de comparaison directs : d'une part, les équipes qui gèrent elles-mêmes des communautés de type Discourse ou Discuz ont souvent, dans leur chaîne de traitement d'images, des versions d'ImageMagick et de diverses bibliothèques de décodage moins à jour que le programme principal. D'autre part, pour les entreprises qui rattachent forum, système de tickets et produit principal au même système d'authentification unique, la distance que peut parcourir un token, une fois un site périphérique compromis, dépend de la mesure dans laquelle la portée du SSO a été restreinte.

Sources : blog technique de Hacktron AI, The Wall Street Journal, CocoLoop, The Information ; le blog de Hacktron confirme la chaîne d'exploitation, la chronologie de 72 heures, le délai de correction de 14 heures, la prime de 6 500 dollars et le coût de 3 000 dollars en tokens.