CVE-2015-7551: Unsichere Behandlung von tainted Strings in Fiddle und DL

Geschrieben von usa am 16.12.2015
Übersetzt von Marvin Gülker

Es gibt ein Sicherheitsproblem mit dem Gebrauch von „tainted" Strings in Fiddle und DL. Der Sicherheitslücke wurde die CVE-Nummer CVE-2015-7551 zugewiesen.

Details

Fiddle und DL sind anfällig für eine Sicherheitslücke beim Umgang mit „tainted" Strings. Das Problem wurde ursprünglich mit CVE-2009-5147 gegen DL gemeldet und behoben, trat jedoch nach Reimplementation von DL auf der Basis von Fiddle und libffi wieder auf.

Im Bezug auf DL wurde CVE-2009-5147 mit Ruby 1.9.1 behoben, nicht jedoch in anderen Zweigen, weshalb alle Rubies mit mitgeliefertem DL außer Ruby 1.9.1 noch immer von dem Problem betroffen sind.

Betroffener Code sieht so aus:

handle = Fiddle::Handle.new(dangerous_user_input)

Oder so:

handle = Fiddle::Handle.new(some_library)
function_pointer = handle[dangerous_user_input]

Alle Nutzer einer betroffenen Veröffentlichung sollten umgehend aktualisieren oder einen der Workarounds anwenden.

Betroffene Versionen

  • Alle Patch-Veröffentlichungen von Ruby 1.9.2 und Ruby 1.9.3 (DL und Fiddle)
  • Alle Patch-Veröffentlichungen von Ruby 2.0.0 vor Ruby 2.0.0 patchlevel 648 (DL und Fiddle)
  • Alle Versionen von Ruby 2.1 vor Ruby 2.1.8 (DL und Fiddle)
  • Alle Versionen von Ruby 2.2 vor Ruby 2.2.4 (Fiddle)
  • Ruby 2.3.0 preview 1 und preview 2 (Fiddle)
  • Trunk vor Revision 53153 (Fiddle).

Workarounds

Wenn Sie nicht aktualisieren können, besteht die Möglichkeit, als Workaround den folgenden Monkeypatch auf Fiddle anzuwenden:

class Fiddle::Handle
 alias :old_initialize :initialize
 def initialize file, *args
 raise SecurityError if file.tainted? && $SAFE > 0
 old_initialize file, *args
 end
 alias :sym :[]
 alias :old_call :[]
 def [] fun
 raise SecurityError if fun.tainted? && $SAFE > 0
 old_call fun
 end
end

Wenn Sie DL nutzen, wechseln Sie stattdessen zu Fiddle.

Danksagung

Danke an Christian Hofstaedtler zeha@debian.org für das Melden des Problems!

Historie

  • Erstmals veröffentlicht am 2015年12月16日 12:00:00 UTC


AltStyle によって変換されたページ (->オリジナル) /