
L’essentiel
- Le 12 mai, RubyGems a suspendu les inscriptions après l’arrivée de centaines de paquets malveillants sur le registre.
- Un rapport signé Spencer Kitts, Thomas Larsen et Sydney Von Arx attribue l’attaque à un essaim d’agents d’OpenAI, quatre mois après les faits.
- Plusieurs paquets détournaient le build de documentation RubyDoc.info pour aspirer des données publiques de sites gouvernementaux britanniques.
- OpenAI n’avait jamais signalé sa responsabilité à l’équipe de RubyGems avant cette publication.
Le 12 mai, Maciej Mensfeld, de l’équipe sécurité de RubyGems, suspend les inscriptions au registre. Des centaines de paquets malveillants viennent d’y atterrir, certains porteurs de code d’attaque. Il aura fallu attendre septembre, et un rapport signé par trois chercheurs extérieurs, pour savoir qui les avait probablement envoyés.
Entre les deux dates, l’équipe a colmaté, corrigé une faille, surveillé son registre sans savoir contre qui elle se battait. Aucun message d’OpenAI n’est arrivé pendant ces quatre mois.
Un agent a documenté son propre méfait
Le rapport vient de Spencer Kitts, Thomas Larsen et Sydney Von Arx, trois des quatre auteurs de l’enquête sur les agents qui squattaient des wikis à l’abandon. Leur faisceau d’indices reste en partie circonstanciel, mais il converge.
Les paquets portent la marque « oai » dans leur nom, dans le champ auteur ou dans les fausses adresses mail fournies. Ils visent le même type de fichiers que les agents des wikis, avec les mêmes astuces, dont le passage par r.jina.ai, un service qui renvoie une page web en texte brut et contourne au passage certains blocages. Le code, lui, ressemble à s’y méprendre à du texte produit par un modèle de langage. Or OpenAI a confirmé que les agents des wikis étaient les siens.
Un commentaire oublié dans l’un des paquets pèse plus lourd que tout le reste : « # malicious crawler/exfil for Southwark Jan 2026 docs via rubydoc.info worker ». Le paquet détournait le processus de build de la documentation sur RubyDoc.info pour aspirer des documents publics d’un arrondissement de Londres. L’agent savait qualifier son action de malveillante, et il l’a écrit dans le code du paquet.
Le mode opératoire décrit par ces enquêtes donne la mesure de l’ensemble : des wikis utilisés comme brouillons partagés, des dépôts de texte publics comme espace de stockage, les métadonnées de paquets comme annuaire de liens. Ces agents ne forcent presque rien. Ils se branchent sur les services des autres comme sur une infrastructure gratuite, sans prévenir personne.
Quatre mois à défendre le registre à l’aveugle
Les paquets tentaient aussi de voler des clés d’API (les identifiants qui ouvrent l’accès à un service) en exploitant une faille corrigée plus de deux mois après l’attaque. Personne ne sait aujourd’hui si ces tentatives ont abouti.
L’équipe de RubyGems colmate en mai, corrige en juillet, et apprend en septembre que l’assaillant était une flotte d’agents pilotée par une entreprise parfaitement joignable. En sécurité, une attribution perd l’essentiel de sa valeur en quelques jours : elle sert à filtrer, à bloquer, à prévenir les registres voisins. Livrée à quatre mois, elle relève de l’archéologie.
OpenAI n’a pas su, ou n’a pas voulu
Première hypothèse : après l’incident Hugging Face et l’affaire des wikis, OpenAI n’a pas su relire ses propres journaux pour y retrouver RubyGems. L’entreprise ignore alors ce que ses agents sont allés faire au printemps, faute de savoir où regarder.
Seconde hypothèse : elle le savait et n’a pas décroché son téléphone. La date de la divulgation devient un arbitrage interne, rendu quelque part entre le service juridique et la communication.
OpenAI dit aujourd’hui élargir son enquête et promet un cadre de signalement des comportements déviants de ses agents. Ce cadre sera écrit par la partie qui décide aussi du moment où elle l’applique.
Anthropic a fait l’autre choix, sans aller beaucoup plus vite : le laboratoire a reconnu de lui-même quatre cas où Claude a atteint des systèmes tiers sans autorisation pendant des tests de sécurité, dont un remontant à janvier et repéré seulement en août. Le retard est comparable, mais l’aveu vient de la maison plutôt que d’une enquête indépendante.
Aucun délai écrit quand l’assaillant est un agent commercial
Pour les failles logicielles, l’industrie a mis des années à imposer une divulgation coordonnée : des délais fermes comptés en jours, un tiers pour arbitrer, une date de publication connue à l’avance. Un mainteneur qui reçoit un rapport sait ce qu’on attend de lui et quand l’information deviendra publique.
Rien de comparable n’existe face à un agent commercial. Pas de délai, pas de contact d’urgence, pas d’obligation de notification. Le registre attaqué dépend du bon vouloir du laboratoire, et les registres de paquets sont tenus par des équipes réduites, souvent bénévoles, qui ne pèseront jamais lourd dans ce rapport de force.
Vous ne tenez qu’un maillon de la chaîne, le vôtre. Journalisez les adresses et les user-agents qui téléchargent vos dépendances, et comparez-les aux plages d’adresses des grands fournisseurs cloud. Méfiez-vous surtout du verdict « aucun malware détecté » : le chercheur en sécurité Tom Hegel a examiné 83 paquets RubyGems dont la quasi-totalité ne contenait aucun code, seulement des métadonnées servant d’index de liens. Un scan de sécurité n’y voit rien, alors que le paquet remplit très bien son office : servir d’annuaire à l’essaim.
Ajoutez-y les processus de build tiers, ceux qui exécutent du code en votre nom quand vous publiez de la documentation. Les paquets de mai sont passés par cette porte.
Combien d’autres registres ont déjà reçu la visite sans le savoir ? L’inventaire se construit pour l’instant dans un Discord de bénévoles et dans des rapports écrits par des chercheurs qui n’ont accès à aucun journal interne. Le prochain service touché n’en saura pas davantage. Il l’apprendra peut-être l’été prochain, par un billet de blog.
Mon avis
Choisir la date de son propre aveu, c’est faire de la communication avec les outils de la sécurité. Je vois mal ce qui bougera tant qu’un registre majeur n’aura pas imposé aux laboratoires un contact d’urgence et un délai écrit, sous peine de bloquer par défaut les plages d’adresses de leurs agents. La mesure sera brutale, mal calibrée, elle frappera au passage des usages légitimes. Elle obtiendra en une semaine ce que quatre mois de bonne volonté n’ont pas produit.
