$SAFE-Escaping-Schwachstelle bezüglich Exception#to_s / NameError#to_s (CVE-2012-4464, CVE-2012-4466)

Gepostet von usa am 12. Okt 2012

Schwachstellen wurden für Exception#to_s, NameError#to_s und name_err_mesg_to_s() gefunden, was eine Ruby-Interpreter-interne API ist. Ein bösartiger Benutzercode kann die $SAFE-Überprüfung umgehen, indem er eine dieser Sicherheitslücken ausnutzt.

Details

Rubys $SAFE-Mechanismus ermöglicht es, nicht vertrauenswürdigen Benutzercode im $SAFE >= 4 Modus auszuführen. Dies ist eine Art Sandboxing, bei dem einige Operationen in diesem Modus eingeschränkt sind, um andere Daten außerhalb des Sandbox zu schützen.

Das gefundene Problem lag in diesem Mechanismus. Exception#to_s, NameError#to_s und die interne Interpreter-API name_err_mesg_to_s() behandelten die $SAFE-Bits nicht korrekt, sodass ein nicht getaintes String-Objekt damit destruktiv als getaintet markiert werden konnte. Durch die Nutzung dieser Schwachstelle konnte ein nicht vertrauenswürdiger Code in einer Sandbox einen zuvor nicht getainteten String destruktiv modifizieren.

Ruby 1.8 hatte einst ein ähnliches Sicherheitsproblem. Es wurden Exception#to_s und NameError#to_s behoben, aber das Problem mit name_err_mesg_to_str() überlebte die vorherige Sicherheitskorrektur.

Betroffene Versionen

  • Alle Ruby 1.8.7 vor Patchlevel 371
  • Alle Ruby 1.9.3 vor Patchlevel 286
  • Alle Entwicklungszweige von Ruby 2.0 vor Revision r37068

Lösung

Upgrade auf die neueste Version.

Danksagung

Diese Schwachstelle wurde von Tyler Hickes gefunden.

Aktualisierungen

  • Ursprünglich veröffentlicht am 12.10.2012 19:17:50 JST.

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...