zurück zum Artikel

Gefahr durch eingeschmuggelte Ruby on Rails-Objekte

Kristina Beer

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

Die Entwickler von Ruby on Rails [1] fordern [2] 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 [3]) 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 [4], können auf diese Art eingeschleuste Objekte weiteren Attacken den Weg bereiten. So könnte zum Beispiel ein Angreifer eine bereits bekannte SQL-Injection [5] Schwachstelle ausnutzen.

Ruby on Rails Update beseitigt außerdem Probleme mit der JSON-Parameter Verarbeitung (CVE-2013-0155 [6]), ü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 [7] zu erreichen. (kbe [8])


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

Links in diesem Artikel:
[1] http://rubyonrails.org/
[2] http://weblog.rubyonrails.org/2013/1/8/Rails-3-2-11-3-1-10-3-0-19-and-2-3-15-have-been-released/
[3] https://groups.google.com/forum/#!topic/rubyonrails-security/61bkgvnSGTQ/discussion
[4] https://community.rapid7.com/community/metasploit/blog/2013/01/09/serialization-mischief-in-ruby-land-cve-2013-0156
[5] https://www.heise.de/news/Luecke-in-Ruby-on-Rails-erlaubt-SQL-Injections-1776279.html
[6] https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/t1WFuuQyavI
[7] http://rubygems.org/gems/rails
[8] mailto:kbe@heise.de