Gefahr durch eingeschmuggelte Ruby on Rails-Objekte

Die Entwickler von Ruby on Rails bitten ihre Nutzer um ein schnellstmögliches Update - über Rails-Objekte kann Code eingeschleust und ausgeführt werden.

In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen
Lesezeit: 2 Min.

Die Entwickler von Ruby on Rails fordern Nutzer zu einem schnellstmöglichen Update ihrer Rails-Installationen auf. Sie reagieren damit auf die Veröffentlichung von Sicherheitslücken in der Verarbeitung von XML-formatierten Parametern im Rails Framework. Ein Exploit wurde bisher noch nicht registriert, aber nach dem Bekanntwerden ist das nur noch eine Frage der Zeit. Betroffen sind alle Versionen von Rails; Updates sind für die Versionen 3.2.11, 3.1.10, 3.0.19 und 2.3.15 verfügbar. Administratoren, die Rails nicht regelmäßig updaten können, sollen die XML-formatierten Parameter abschalten.

Laut der Schwachstellenbeschreibung (CVE-2013-0156) liegt das Problem innerhalb des XML-Moduls, welches die Parameter verarbeitet. Rails kann nicht nur Parameter über GET und POST empfangen, sondern innerhalb eines POST-Requests auch speziell formatierte Daten. Dort kann man Ruby dazu bringen diese als YAML-Dokument oder Ruby-Symbol zu dekodieren und damit Code einzuschleusen und auszuführen. So erzeugt etwa ein POST-Request mit:

<?xml version="1.0" encoding="UTF-8"?>
<eviltime type="yaml">--- !ruby/object:Time {}
</eviltime>

auf dem Server ein Ruby Time Objekt. Wie HD Moore von Rapid7 unterstreicht, können auf diese Art eingeschleuste Objekte weiteren Attacken den Weg bereiten. So könnte zum Beispiel ein Angreifer eine bereits bekannte SQL-Injection Schwachstelle ausnutzen.

Ruby on Rails Update beseitigt außerdem Probleme mit der JSON-Parameter Verarbeitung (CVE-2013-0155), über die sich SQL-Statements verändern lassen. So werden der NULL-Check und die WHERE-Klausel eliminiert. Allerdings kann ein Angreifer damit keinen beliebigen Code in eine SQL-Anfrage einschleusen.

Patches und Tipps für Workarounds, wenn Updates nicht gemacht werden können oder nicht funktionieren, sind in den Beschreibungen zu den Schwachstellen unter den CVE-Nummern zu finden. Die Updates sind über das RubyGem-System zu erreichen. (kbe)