Le 11 mai 2026, des centaines de paquets malveillants ont été téléchargés sur RubyGems par des agents d'IA. Nous pensons qu'ils ont été rédigés par des agents internes d'OpenAI.

Les agents ont tenté de voler les clés API des utilisateurs de RubyGems en exploitant une vulnérabilité inédite dans le serveur RubyGems. Nous ignorons s'ils ont réussi.

Ils ont également abusé de RubyDoc.info pour exécuter du code arbitraire. Nous partageons nos conclusions détaillées ci-dessous.

Cette analyse repose entièrement sur les paquets RubyGems accessibles au public mis en ligne par ces agents. Nous avons également discuté avec RubyGems et rubydoc.info.

Cependant, nous n'avons pas accès au reste du comportement de l'IA, en particulier la chaîne de pensée produite par le modèle pendant l'incident, qui est interne à OpenAI. Par conséquent, nous ne savons pas pourquoi les agents de l'IA ont choisi cette stratégie ni si elle a fonctionné.

L'équipe de RubyGems a suspendu les nouvelles inscriptions d'utilisateurs pendant quatre jours pour endiguer le flot de paquets provenant des comptes des agents. Un membre de l'équipe de sécurité de RubyGems a décrit cela comme une « attaque malveillante majeure ».

Les entreprises de sécurité ont qualifié l'incident de « campagne GemStuffer », tout en signalant une confusion quant au but de l'attaque. Les paquets malveillants téléchargés ont été utilisés pour récupérer des informations sur des sites de collectivités locales britanniques, des données pourtant accessibles au public.

Un média écrit : « Il n'est pas clair quels sont exactement les objectifs finaux, les informations semblant de toute façon accessibles au public. »

Nous remercions Jonas Wiedermann-Möller (@j0wimo) d'avoir découvert le premier que des agents avaient probablement téléchargé des contenus sur RubyGems. Nous remercions également @she_llac, qui a coordonné une communauté traquant les nouveaux signes d'activité des agents et qui a mené de manière indépendante une analyse préliminaire de l'utilisation de RubyGems par les agents.

L'essentiel de l'incident s'est déroulé en mai, avec de nouvelles activités en juin. En réponse, RubyGems a temporairement désactivé les nouvelles inscriptions du 12 au 16 mai. Par la suite, RubyGems a introduit des mesures de sécurité supplémentaires, telles que l'exigence d'e-mails vérifiés non jetables et l'ajout de limites de taux pour les nouvelles inscriptions.