zurück zum Artikel

Lücke in Ruby on Rails erlaubt SQL-Injections

Christian Kirsch

Alle aktuellen Versionen des Fameworks Ruby on Rails sind von einer Sicherheitslücke betroffen, die das Einschleusen von beliebigem SQL-Code ermöglicht. Nutzer sollten ihre Software möglichst schnell aktualisieren.

Die Entwickler des freien Frameworks Ruby on Rails warnen [1] vor einer Lücke in den Versionen 3.0, 3.1 und 3.2, durch die ein Angreifer beliebigen SQL-Code ausführen kann. Der Fehler befindet sich im Modul ActiveRecord [2] und wurde inzwischen durch die RoR-Versionen 3.0.18, 3.1.9 und 3.2.10 behoben [3]. Anwender, die keine aktuelle Version installieren dürfen oder wollen, können Patches [4] verwenden, die es auch für die alte Version 2.3 gibt.

Aufgedeckt [5] hatte den Fehler ein Blog-Beitrag von joernchen von der Gruppe phenoelit Ende Dezember 2012. Er untersuchte verschiedene Verfahren, die Authentifizierungsmethoden von RoR zu knacken, und stieß dabei auf eine zu großzügige Implementierung der find_by_*-Methoden in ActiveRecord. Sie interpretieren ihren letzten Namensbestandteil als Feld in einer Datenbanktabelle; so liefert find_by_id den Inhalt des Datensatzes, dessen Feld id mit dem übergebenen Wert übereinstimmt.

Ein solcher Dynamic Finder erlaubt als zweiten Parameter einen Hash, etwa der Form {:limit => 1}, der Optionen für die SQL-Abfrage enthält. Ihr erster Parameter durfte bislang jedoch ebenfalls ein Hash sein, den die find_by_*-Funktionen unter Umständen fälschlich als Sammlung von SQL-Optionen interpretierten. Dieser Bug, der sich laut dem Entdecker nicht per HTTP-GET oder -POST-Parameter ausnutzen lassen soll, ist nun behoben. (ck [6])


URL dieses Artikels:
https://www.heise.de/-1776279

Links in diesem Artikel:
[1] https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/DCNTNp_qjFM
[2] http://api.rubyonrails.org/files/activerecord/README_rdoc.html
[3] http://weblog.rubyonrails.org/2013/1/2/Rails-3-2-10--3-1-9--and-3-0-18-have-been-released/
[4] https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/DCNTNp_qjFM
[5] http://www.phenoelit.org/blog/archives/2012/12/21/let_me_github_that_for_you/index.html
[6] mailto:ck@ix.de