Geschrieben von usa am 17.10.2018
Übersetzt von Marvin Gülker
Die Methoden Array#pack
und String#unpack
geben die
„taint“-Markierung der ursprünglichen Daten nicht bei allen
Formatierungsdirektiven an den Rückgabewert weiter. Dieser
Sicherheitslücke ist die CVE-Nummer
CVE-2018-16396
zugewiesen worden.
Details
Die Methode Array#pack
konvertiert den Inhalt des Empfängers nach
Maßgabe der übergebenen Formatierungsdirektiven in einen String. Wenn
der Empfänger dabei Objekte enthält, die als „tainted“ markiert
wurden, so sollte auch der zurückgegebene String „tainted“ sein. Die
umgekehrt funktionierende Methode String#unpack
, die den Empfänger
in ein Array konvertiert, sollte ebenfalls ihre „taint“-Markierung an
die im zurückgegebenen Array enthaltenen Objekte weitergeben. Bei
Einsatz der Formatierungsdirektiven B
, b
, H
und h
wurde jedoch
in beiden Fällen die „taint“-Markierung nicht weitergegeben. Wenn
demnach ein Skript unbekannte Eingaben von Array#pack
und/oder
String#unpack
verarbeiten lässt und die Rückgabewerte auf
Richtigkeit im Hinblick auf die „taint“-Markierung prüft, kann diese
Prüfung fehlschlagen.
Alle Nutzer einer betroffenen Version sollten umgehend aktualisieren.
Betroffene Versionen
- Ruby 2.3er-Serie: 2.3.7 und früher
- Ruby 2.4er-Serie: 2.4.4 und früher
- Ruby 2.5er-Serie: 2.5.1 und früher
- Ruby 2.6er-Serie: 2.6.0-preview2 und früher
- Trunk vor Revision r65125
Danksagung
Dank an Chris Seaton, der diesen Fehler meldete.
Historie
- Erstmals veröffentlicht am 2018-10-17 14:00:00 (UTC)