Open Source im professionellen Einsatz

Ruby on Rails: Zwei Sicherheitslücken

In Ruby on Rais wurden zwei kritische Schwachstellen hier und hier gefunden (CVE-2016-6316 und CVE-20166-317).

Das erste Problem ensteht durch einen Programmierfehler in den Action View. Hierbei handelt es sich um einen typischen Input-Validation-Fehler beim Verarbeiten von Benutzereingaben. Hierbei werden als »html_safe« markierte Strings nicht korrekt auf Anführungszeichen gefiltert. Dies kann von einem Angreifer zum Ausführen von Cross-Site-Skripting-Attacken ausgenutzt werden, wenn Eingaben von Benutzern ohne Überprüfung einfach übernommen werden. Der offizielle Report zeigt auch zwei Beispiele wie entsprechend anfälliger Code aussehen könnte:

``` content_tag(:div, "hi", title: user_input.html_safe) ``` 

oder

``` content_tag(:div, "hi", title: sanitize(user_input)) ``` 

Die Installation der Fixes zeigt auch einen Workaround für dieses Problem:

``` def escape_quotes(value)   value.gsub(/"/, '"'.freeze) end content_tag(:div, "hi", title: escape_quotes(sanitize(user_input))) ``` 

Hierbei wurde eine neue Funktion »escape_quotes()« definiert, um auf Anführungszeichen zu filtern.

Von dieser Schwachstelle sind aller Versionen neuer als 3.0.0 betroffen. Die zweite Schwachstelle tritt ebenfalls beim Verarbeiten von Benutzereingaben auf. Hier liegt das Problem in den Routinen zum Parsen von JSON-Daten. Dadurch kann der Angreifer unerwartete Datenbankabfragen absetzen. Der Angreifer kann zwar damit keine beliebigen SQL-Anweisungen ausführen, aber er kann nach NULL-Werten suchen oder WHERE-Bedingungen aus Anfragen entfernen. Betroffen hiervon sind alle Versionen neuer als 4.2.0.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.