CVE-2015-7551: Unsichere Tainted-String-Nutzung in Fiddle und DL

Gepostet von usa am 16 Dez 2015

Es gibt eine unsichere Schwachstelle bei der Verwendung von Tainted Strings in Fiddle und DL. Dieser Schwachstelle wurde die CVE-ID CVE-2015-7551 zugewiesen.

Details

Es gibt eine unsichere "tainted" String-Schwachstelle in Fiddle und DL. Dieses Problem wurde ursprünglich mit CVE-2009-5147 in DL gemeldet und behoben, trat jedoch nach der Neuentwicklung von DL unter Verwendung von Fiddle und libffi wieder auf.

Und was DL betrifft: CVE-2009-5147 wurde in Ruby 1.9.1 behoben, aber nicht in anderen Zweigen. Daher sind Rubies, die DL gebündelt hatten, außer Ruby 1.9.1, immer noch anfällig.

Betroffener Code sieht ungefähr so aus

handle = Fiddle::Handle.new(dangerous_user_input)

Oder

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

Alle Benutzer, die eine betroffene Version ausführen, sollten entweder ein Upgrade durchführen oder umgehend eine der Problemumgehungen verwenden.

Betroffene Versionen

  • Alle Patch-Releases von Ruby 1.9.2 und Ruby 1.9.3 (DL und Fiddle).
  • Alle Patch-Releases 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).
  • Vor Trunk-Revision 53153 (Fiddle).

Problemumgehungen

Wenn Sie kein Upgrade durchführen können, kann der folgende Monkey Patch als Problemumgehung für Fiddle angewendet werden.

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 verwenden, nutzen Sie stattdessen Fiddle.

Credits

Vielen Dank an Christian Hofstaedtler zeha@debian.org für die Meldung dieses Problems!

Verlauf

  • Ursprünglich veröffentlicht am 2015-12-16 12:00:00 UTC

Aktuelle Nachrichten

Ruby 4.0.0 veröffentlicht

Wir freuen uns, die Veröffentlichung von Ruby 4.0.0 bekannt zu geben. Ruby 4.0 führt „Ruby Box“ und „ZJIT“ ein und bringt viele Verbesserungen mit sich.

Veröffentlicht von naruse am 25. Dez 2025

Ein neuer Look für Rubys Dokumentation

Nach dem Redesign von ruby-lang.org gibt es weitere Neuigkeiten zur Feier des 30-jährigen Jubiläums von Ruby: docs.ruby-lang.org hat ein komplett neues Erscheinungsbild mit Aliki – dem neuen Standard-Theme von RDoc.

Veröffentlicht von Stan Lo am 23. Dez 2025

Neues Website-Erscheinungsbild

Wir freuen uns, ein umfassendes Redesign unserer Website bekannt zu geben. Das Design für dieses Update wurde von Taeko Akatsuka erstellt.

Veröffentlicht von Hiroshi SHIBATA am 22. Dez 2025

Ruby 4.0.0 preview3 veröffentlicht

Wir freuen uns, die Veröffentlichung von Ruby 4.0.0-preview3 bekannt zu geben. Ruby 4.0 führt Ruby::Box und „ZJIT“ ein und bringt viele Verbesserungen mit sich.

Veröffentlicht von naruse am 18. Dez 2025

Weitere Neuigkeiten...