Ruby-on-Rails-Lücke ermöglicht Dateischreiben über manipulierte Uploads
Das Rails-Projekt hat am 4. November eine kritische Schwachstelle in Active Storage behoben. Ein nicht authentifizierter Angreifer kann darüber beliebige Dateien auf dem Server schreiben, wenn die Anwendung Uploads mit ImageMagick verarbeitet, schrieb Rails in einem Advisory. Die Lücke trägt die Kennung GHSA-f3w6-w445-fwh9 und hat laut Rails einen CVSS-Wert von 9,8; eine CVE-Nummer gibt es noch nicht.
Betroffen sind Anwendungen mit Active Storages Disk-Service, die nicht vertrauenswürdige Dateien annehmen und ImageMagick für die Bildverarbeitung einsetzen. Rails zufolge kann der Angreifer unter diesen Bedingungen auch Dateien lesen, die der Anwendung zugänglich sind. Dazu können der geheime Schlüssel secret_key_base und Zugangsdaten für andere Systeme gehören, was anschließend entfernte Codeausführung oder eine Ausweitung des Zugriffs ermöglichen kann.
Der Angriff erreicht die Schwachstelle bereits beim Anhängen eines Uploads. Die Anwendung muss dafür weder eine Bildvariante noch eine Vorschau erzeugen. Nach Angaben von Rails konnte eine SVG-Datei den ImageMagick-Coder MSL erreichen. Dieser Skript-Coder kann Dateien lesen und schreiben, die das Skript benennt.
Alle Active-Storage-Versionen vor 8.0.5.2 sowie 8.1-Versionen vor 8.1.4.1 sind laut Rails betroffen. Die korrigierten Releases sind Rails 8.0.5.2 und 8.1.4.1. Rails empfiehlt die Aktualisierung so schnell wie möglich. Anwendungen auf mini_magick benötigen zusätzlich mini_magick 5.1 oder neuer, sonst starten sie nach dem Upgrade laut Projekt nicht.
Die festen Versionen liefern eine ImageMagick-Sicherheitsrichtlinie mit. Sie blockiert unter anderem den MSL-Coder, Coder mit Zugriff auf andere Dateien, lokale oder entfernte Referenzen sowie Ghostscript-Coder und den gs-Delegate. Administratoren sollten laut Rails prüfen, ob die Anwendung diese Richtlinie tatsächlich lädt. Eine eigene MiniMagick-Konfiguration oder eine abweichende Systemrichtlinie kann die Schutzwirkung verhindern; GraphicsMagick liest diese ImageMagick-Richtlinien nicht.
Wenn ein Upgrade nicht sofort möglich ist, nennt Rails als Workaround das Übernehmen der Regeln aus der mitgelieferten policy.xml in die Systemrichtlinie von ImageMagick. Mindestens der MSL-Coder, Ghostscript-Coder und der gs-Delegate sollen dabei blockiert werden. Für Anwendungen mit Disk-Service empfiehlt Rails außerdem, secret_key_base und jedes weitere vom Prozess lesbare Geheimnis zu ändern, darunter Datenbank- und Drittanbieter-Zugangsdaten. Das Advisory erklärt nicht, wie sich bereits angegriffene Anwendungen erkennen lassen.
