KindaRails2Shell, attacchi attivi contro Ruby on Rails: file upload usati per rubare segreti e credenziali
Schwachstellen

Illustration mit KI erzeugt

KindaRails2Shell, aktive Angriffe auf Ruby on Rails: Datei-Uploads zum Diebstahl von Geheimnissen und Zugangsdaten missbraucht

CVE-2026-66066 (KindaRails2Shell) wird aktiv ausgenutzt: Manipulierte Bild-Uploads über Active Storage & libvips ermöglichen das Auslesen sensibler Dateien.

Von künstlicher Intelligenz erzeugter Text, ohne menschliche Überprüfung veröffentlicht. KI-Transparenz

Mit Stand vom 31. August 2026 wird CVE-2026-66066 aktiv gegen exponierte Ruby-on-Rails-Anwendungen ausgenutzt. Die unter dem Namen KindaRails2Shell bekannte Schwachstelle ermöglicht es, den Upload eines manipulierten Bildes in das beliebige Auslesen von Dateien umzuwandeln, auf die der Rails-Prozess zugreifen kann.

Die Schwachstelle hat einen CVSS-Score von 9,5 und ist als CWE-1188 klassifiziert. Hauptsächlich betroffen sind Anwendungen, die Active Storage, die Bildverarbeitungsbibliothek libvips und Uploads von nicht vertrauenswürdigen Nutzern kombinieren – auch ohne Authentifizierung.

Die Auswirkungen beschränken sich nicht auf die Offenlegung von Dateien. Ausgelesene Geheimnisse können das Fälschen von Sitzungen, den Diebstahl von Zugangsdaten, den Zugriff auf angebundene Dienste und unter bestimmten Bedingungen sogar die Remote-Code-Ausführung ermöglichen.

Welche Rails-Versionen sind verwundbar?

Laut den NVD-Daten sind Ruby-on-Rails-Versionen vor folgenden Releases betroffen:

  • 7.2.3.2
  • 8.0.5.1
  • 8.1.3.1

Administratoren sollten daher mindestens auf die für ihren jeweiligen Release-Zweig verfügbare korrigierte Version aktualisieren. Zu den betroffenen Komponenten zählen Ruby on Rails/Action Pack, Active Storage, libvips, libmatio und HDF5.

Allerdings weisen nicht alle Rails-Installationen dasselbe Risikoniveau auf. Besonders gefährdet sind Anwendungen, die:

  • Active Storage zum Empfangen und Transformieren von Bildern einsetzen;
  • libvips als Verarbeitungs-Engine konfiguriert haben;
  • anonyme Uploads oder Uploads von nicht vollständig vertrauenswürdigen Konten zulassen;
  • Rails mit Zugriff auf Zugangsdaten, Schlüssel und sensible Konfigurationsdateien im Dateisystem ausführen.

Anfang August hatte VulnCheck rund 7.000 exponierte und verwundbare Ruby-on-Rails-Instanzen identifiziert. Die Zahl sagt nicht aus, wie viele davon inzwischen aktualisiert wurden oder wie viele möglicherweise kompromittiert waren.

Rails veröffentlichte die Korrekturen in der zweiten Julihälfte und forderte zur sofortigen Aktualisierung exponierter Konfigurationen auf. Kurz darauf analysierten unabhängige Forscher den Patch, rekonstruierten den Fehler und veröffentlichten Proof-of-Concept-Code. Laut VulnCheck begannen die Angriffe etwa einen Monat nach der Veröffentlichung der Updates.

Vom manipulierten Bild zum Auslesen lokaler Dateien

KindaRails2Shell nutzt eine Abweichung darin aus, wie Rails und die zugrunde liegenden Bibliotheken das Format einer Datei bestimmen.

Rails kann einen Blob anhand des vom Client angegebenen Content-Typs als Bild behandeln. libvips untersucht dagegen die sogenannten Magic Bytes, also Sequenzen im Inhalt, die das tatsächliche Dateiformat erkennen lassen. Ein Angreifer kann diese Abweichung ausnutzen, um ein Objekt hochzuladen, das der Anwendung als Bild präsentiert wird, von libvips jedoch als MATLAB Level 5-Datei erkannt wird.

Die Angriffskette verläuft über mehrere Bibliotheken:

  1. Rails akzeptiert den Upload als grafischen Inhalt.
  2. libvips erkennt die für das MATLAB-Format charakteristischen Bytes.
  3. Die Datei wird an libmatio übergeben.
  4. Ein Feld im Header veranlasst libmatio, die Variante MAT 7.3 zu erkennen.
  5. Die Verarbeitung wird an die Bibliothek HDF5 weitergereicht.
  6. Die External File List-Funktion von HDF5 erhält einen vom Angreifer kontrollierten Pfad und Offset.

Mit External File List kann ein HDF5-Dataset seine Daten in einer externen Datei speichern. In diesem Szenario wird die Funktion jedoch dazu missbraucht, eine vom Angreifer ausgewählte lokale Datei auszulesen. Beim Rendering können die ausgelesenen Bytes in das resultierende Bild eingebettet und als Pixel zurückgegeben werden.

Die Schwachstelle entsteht somit dadurch, dass Active Storage unsichere libvips-Operationen nicht deaktiviert, wenn der Inhalt von nicht vertrauenswürdigen Quellen stammt. Ein Konto ist nicht erforderlich: Es genügt, eine verwundbare Upload-Funktion zu erreichen.

Anwendungsschlüssel, Sitzungen und laterale Bewegung

Der Angreifer kann jede Datei auslesen, auf die der Rails-Prozess mit seinen Berechtigungen zugreifen kann. Der Umfang hängt von der Serverkonfiguration und den der Anwendung zugewiesenen Rechten ab, kann aber unter anderem Folgendes umfassen:

  • Umgebungsvariablen;
  • Dateien mit Anwendungsschlüsseln und -geheimnissen;
  • Datenbanken oder Zugangsdatenarchive;
  • Schlüssel für Storage-Dienste;
  • Konfigurationsdateien mit Tokens;
  • Material zum Signieren von Sitzungen und anderen Anwendungsdaten.

Zu den besonders sensiblen Werten gehört secret_key_base. Wird dieser Schlüssel offengelegt, können die kryptografischen Mechanismen gefährdet werden, die Sitzungen, signierte Cookies und andere von der Anwendung erzeugte Objekte schützen.

Nach dem Diebstahl von Geheimnissen kann der Angreifer Sitzungen fälschen, die Identität legitimer Nutzer übernehmen oder sich mit Datenbanken und externer Infrastruktur verbinden. Wiederverwendete Zugangsdaten oder Schlüssel mit übermäßigen Berechtigungen können außerdem die laterale Bewegung in andere Systeme erleichtern.

Daher ist die reine Installation des Patches nicht zwangsläufig ausreichend, um den Sicherheitsvorfall abzuschließen. Das Update schließt zwar den ursprünglichen Angriffsvektor, widerruft jedoch keine bereits gestohlenen Zugangsdaten oder Signaturschlüssel.

Zweifel an der Marshal-Variante auch nach dem Patch

VulnCheck führte einen Test auf einem Server durch, der auf Version 8.1.3.1 aktualisiert worden war, die von NVD als korrigierte Version aufgeführt wird. Der Test soll bestätigt haben, dass das beliebige Auslesen von Dateien über libvips blockiert wird. Gleichzeitig wurde jedoch ein möglicher verbleibender Teil der Angriffskette festgestellt.

Insbesondere könnte eine Variante im Zusammenhang mit der Marshal-Deserialisierung und den Variation Keys weiterhin nutzbar sein, wenn eine gültige Signatur vorhanden ist. Unter diesen Bedingungen würde das Gadget zur Remote-Code-Ausführung auch auf dem aktualisierten System weiterhin funktionieren.

Diese Feststellung stammt aus einer einzigen Quelle und belegt nicht, dass der Patch den primären Angriffsvektor nicht wirksam behebt. Sie führt jedoch zu einer wichtigen operativen Unterscheidung: Die korrigierten Versionen sollen das Auslesen von Dateien über libvips verhindern, es ist jedoch noch nicht abschließend geklärt, ob sie jede mögliche nachgelagerte Phase der Angriffskette neutralisieren.

Organisationen sollten daher Variation Keys und die Marshal-Deserialisierung getrennt testen. Besonders dringend ist diese Prüfung, wenn der Verdacht besteht, dass Signaturschlüssel oder andere Geheimnisse bereits offengelegt wurden.

CISA-KEV-Katalog und Bedrohungslage

Es gibt keinen verifizierbaren Hinweis darauf, dass CVE-2026-66066 in den Katalog Known Exploited Vulnerabilities der CISA aufgenommen wurde. Daher liegen weder ein Aufnahmedatum noch eine KEV-Frist vor, die genannt werden könnten.

Auch zu möglichen jüngeren Ruby-on-Rails-Einträgen im Katalog liegen keine Informationen vor. Die aktive Ausnutzung wird jedoch unabhängig vom KEV-Status durch die von VulnCheck beschriebene Telemetrie bestätigt.

Die Aktivitäten wurden keiner bestimmten Gruppe zugeschrieben. Nicht bekannt sind außerdem die Zahl der betroffenen Organisationen, bevorzugte Ziele oder mögliche Indicators of Compromise, die einer einzelnen Kampagne zugeordnet werden können.

Aktualisierung, Suche nach Spuren und Rotation von Geheimnissen

Die erste Maßnahme besteht darin, Rails mindestens auf 7.2.3.2, 8.0.5.1 oder 8.1.3.1 zu aktualisieren und dabei das zum verwendeten Release-Zweig passende Release auszuwählen. Systeme mit Active Storage, libvips und nicht authentifizierten Uploads sollten priorisiert werden.

Wenn das Update nicht sofort eingespielt werden kann, sollten Bild-Uploads vorübergehend deaktiviert oder ihre Verarbeitung in eine isolierte Umgebung verlagert werden. Der Prozess sollte nur auf die unbedingt erforderlichen Dateien zugreifen können und keinen Zugriff auf Geheimnisse, Zugangsdaten oder die Konfiguration der gesamten Anwendung besitzen.

Rails hat außerdem forensische Tools veröffentlicht, mit denen sich Ausnutzungsversuche erkennen lassen. Solange keine spezifischeren öffentlichen Indicators of Compromise vorliegen, sollten Verteidiger Folgendes untersuchen:

  • ungewöhnliche Upload-Anfragen oder Inhalte mit inkonsistentem angegebenem Typ;
  • ungewöhnliche Aktivitäten von libvips-Prozessen;
  • unerwartete Zugriffe auf lokale Dateien während des Renderings;
  • Fehler im Zusammenhang mit MATLAB, libmatio oder HDF5;
  • verdächtige Erzeugung von Variation Keys;
  • Sitzungen, die in einer Weise erstellt oder verwendet wurden, die nicht zum Nutzerverhalten passt.

War eine verwundbare Anwendung exponiert, müssen secret_key_base, Zugangsdaten und für den Rails-Prozess lesbare Storage-Schlüssel als potenziell kompromittiert betrachtet werden. Diese Werte müssen rotiert werden; bestehende Sitzungen sollten widerrufen oder neu erstellt werden.

Nach dem Patch sollten die Tests sowohl den bösartigen Upload über libvips als auch die mögliche Marshal-Variante abdecken. KindaRails2Shell ist nicht mehr nur ein theoretisches Risiko: Die aktiven Angriffe machen auch eine nachträgliche Prüfung auf einen möglichen Diebstahl von Geheimnissen erforderlich.

Auch interessant

Quellen

Dieser Artikel ist eine eigenständige Aufbereitung auf Basis der folgenden Quellen.

In diesem Artikel behandelte CVEs

Verwandte ThemenKindaRails2ShellCVE-2026-66066Ruby on RailsActive StoragelibvipsDatei-Upload SchwachstelleSicherheitspatch
Zurück zur Startseite