Durch ungültiges NUL-Zeichen werden unabsichtlich Dateien erzeugt (CVE-2012-4522)
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:
p File.exists?("foo") #=> false
open("foo\0bar", "w") { |f| f.puts "hai" }
p File.exists?("foo") #=> true
p File.exists?("foo\0bar") #=> wirft ArgumentErrorBetroffene 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.
Aktuelle Neuigkeiten
Ruby 3.4.2 veröffentlicht
Ruby 3.4.2 wurde veröffentlicht.
Geschrieben von k0kubun am 14.2.2025
Ruby 3.2.7 veröffentlicht
Ruby 3.2.7 wurde veröffentlicht.
Geschrieben von nagachika am 4.2.2025
Ruby 3.3.7 veröffentlicht
Ruby 3.3.7 wurde veröffentlicht.
Geschrieben von k0kubun am 15.1.2025
Ruby 3.4.0 veröffentlicht
Wir freuen uns, die Veröffentlichung von Ruby 3.4.0 bekannt zu geben. Ruby 3.4 führt den it-Blockparameter ein, ändert Prism zum Standardparser, bietet Happy Eyeballs Version...
Geschrieben von naruse am 25.12.2024