Geschrieben von Quintus am 12.10.2012
Es wurde eine Sicherheitslücke in den Dateierstellungsroutinen gefunden,
die es erlaubt, unbeabsichtigt Dateien zu erstellen, indem man
NUL
-Zeichen in den Dateipfad einfügt.
Dieser Sicherheitslücke wurde die CVE-Nummer CVE-2012-4522 zugewiesen.
Details
Ruby kann beliebige Binärsequenzen als Strings behandeln, eingeschlossen
NUL
-Zeichen. Betriebssysteme und andere Programmbibliotheken können
das allerdings nicht immer und behandeln ein NUL
-Zeichen als
Kennzeichen für das Ende eines Strings, weswegen bei der Interaktion mit
solchen Bibliotheken in Ruby NUL
-Zeichen nach Möglichkeit vermieden
werden sollten.
Einige Methoden wie etwa IO#open überprüften den ihnen übergebenen Dateinamen bisher allerdings nicht auf solche Zeichen, sondern gaben ihn direkt an die unterliegenden Lowlevel-Routinen weiter, was zur unbeabsichtigten Erstellung von Dateien etwa wie folgt führen kann:
Betroffene Versionen
- Alle 1.9.3-Releases vor Patchlevel 286
- Alle Entwicklungszweige von Ruby 2 vor Revision r37163
Lösung
Auf die neuste Version aktualisieren.
Dank
Der Vorfall wurde von Peter Bex gemeldet.
Updates
- CVE-Nummer ergänzt am 2012-10-16 08:58:51 JST.
- Erstveröffentlichung des Orignalbeitrags: 2012-10-12 19:19:55 JST.