Weitere kritische LĂĽcke in Ruby on Rails geschlossen
Erneut können Angreifer Ruby-Objekte in den Server einschleusen und somit Code zur Ausführung bringen. Da bereits passende Exploits kursieren, sollten Admins betroffener Server umgehend handeln.
Das Ruby-Entwicklerteam hat eine sehr kritische LĂĽcke in dem Web-Framework Ruby on Rails (RoR) geschlossen, durch die ein Angreifer Code in den Server einschleusen kann. Wer einen Server mit RoR betreibt, sollte umgehend handeln, da bereits passende Exploits kursieren.
Betroffen sind die RoR-Versionen 2.3 und 3.0; Abhilfe schafft ein Update auf 3.0.20 und 2.3.16. AuĂźerdem gibt es Patches. Wer weder auf eine der neuen Versionen umsteigen noch den entsprechenden Patch einspielen kann, soll als Workaround bei den betroffenen Applikationen das Backend von Yaml auf JSONGem umstellen.
Wie bereits bei der Anfang des Jahres entdeckten Lücke, der etliche Server zum Opfer fielen, können Angreifer eigene Ruby-Objekte generieren und ausführen. Dieses Mal gelingt das über speziell präparierte JSON-Datenpakete, die etwa durch einen POST-Request an den Server geschickt werden. Die JSON-Daten durchlaufen bei RoR einen YAML-Parser, der die Daten laut einer Analyse der Schwachstelle jedoch nicht ausreichend überprüft.
Das Problem ist die Funktion convert_json_to_yaml,
die den ĂĽbergebenen Code zu naiv mit der Ruby-Methode StringScanner auseinander nimmt, um YAML-Tokens zu erstellen. Durch geschicktes Zusammenstellen von vorgeblichen JSON-Daten kann ein Angreifer somit eigenen YAML-Code einschleusen und an die Funktion YAML.load durchreichen lassen.
Das Grundproblem, das auch bereits beim letzten RoR-Exploit zum Tragen kam, sei, dass der verwendete Psych YAML Parser keinen Safe-Mode böte, der von außen übergebenen Code ausreichend filtere. Solange man diese Problem nicht beseitige, würden weitere, ähnliche Lücken auftauchen, prophezeit der Entdecker der Lücke. Als Beispiel führt er SafeYAML an, das einen solchen Safe-Mode böte und damit die Exploits stoppe. (kbe)