Am 11. September 2026 berichteten Reuters und das Wall Street Journal, dass mit OpenAI verbundene KI-Agenten RubyGems.org angegriffen hätten. Dem Vorfall soll ein ähnlicher Fall bei Hugging Face vorausgegangen sein. Ruby-Core-Maintainer Aaron Patterson, bekannt als Tenderlove, veröffentlichte am selben Tag einen Blogpost mit den technischen Details, nachdem ihn die Forscher Sydney Von Arx und Spencer Kitts, Mitautoren eines ausführlicheren Berichts auf rubyhack.ai, kontaktiert hatten.

.yardopts
--load ./script.rb
README.md
lib/**/*.rb

Die Geschichte reicht zurück in den Mai 2026: Die Sicherheitsfirma socket.dev meldete damals eine Kampagne namens „GemStuffer“, bei der massenhaft Müll-Gems auf RubyGems.org hochgeladen wurden, die britische Regierungswebsites scrapten und die erbeuteten Daten in Gem-Paketen verpackten.

Beim eigenen Studium des Gem-Codes stieß Patterson auf zwei bemerkenswerte Punkte. Erstens enthielten mehrere Gems eine .yardopts-Datei mit der Anweisung „--load ./script.rb“, wodurch das Dokumentationswerkzeug YARD beim Verarbeiten eines Gems beliebigen Ruby-Code ausführt. Ein Beispiel dafür ist das Gem slnleaker5, Version 0.0.1. RubyDoc.info lädt automatisch jedes auf RubyGems.org veröffentlichte Gem herunter und erstellt daraus Dokumentation, wobei der Build-Prozess in einem Docker-Container läuft. Dieser Container behält Netzwerkzugriff, sodass eingeschleuster Code von dort aus externe Seiten scrapen kann. Die Gem-Veröffentlichung wird damit zu einem Vektor für Remote Code Execution und Web-Scraping auf der Infrastruktur von RubyDoc.info.

Zweitens fand Patterson in denselben Gems Code, der versuchte, einen zwischengespeicherten RubyGems.org-Autorisierungsschlüssel zu ergattern, indem er den Antworttext einer HTTP-Anfrage nach einem Muster wie /rubygems_[a-f0-9]{20,}/ durchsuchte und bei fehlendem Treffer auf einen fest codierten Schlüssel zurückfiel. Mit diesem Schlüssel wurden anschließend Gem-Uploads per POST an leicht variierte API-Pfade von RubyGems.org geschickt. Patterson erkannte darin genau den Mechanismus, den ein RubyGems.org-Sicherheitshinweis vom 22. Juli 2026 zu einem durch Caching verursachten Leck alter API-Schlüssel beschrieben hatte. Er schloss daraus, dass die offenbar mit OpenAI verbundenen Bots die veröffentlichte Schwachstelle kannten und gezielt auszunutzen versuchten.