Sicherheitslücke in Exception#to_s / NameError#to_s (CVE-2012-4464, CVE-2012-4466) ermöglicht Umgehung von $SAFE
Geschrieben von Quintus am 12.10.2012
Es wurden Sicherheitslücken in Exception#to_s, NameError#to_s und
name_err_msg_to_s() (eine interpreter-interne API) gefunden, mithilfe
derer böswilliger Nutzercode die Sicherheitsprüfung durch $SAFE
umgehen kann.
Details
Der $SAFE-Mechanismus von Ruby erlaubt es, nicht vertrauenswürdigen
Nutzercode im Modus $SAFE >= 4 laufen zu lassen; dabei handelt es sich
um eine Art Sandbox, die verhindert, dass Operationen innerhalb dieses
Modus auf Daten außerhalb der Sandbox zugreifen können.
In diesem Mechanismus wurde eine Sicherheitslücke ausfindig gemacht:
Exception#to_s, NameError#to_s und die interpreter-interne API
name_err_mesg_to_s() haben die Bits von $SAFE nicht korrekt
behandelt, sodass ein String-Objekt, das nicht tainted war, durch
ihren Gebrauch destruktiv als tainted markiert werden konnte. Dadurch
war es dem nicht vertrauenswürdigem Code in der Sandbox möglich, einen
zuvor untainted String destruktiv zu verändern.
Ruby 1.8 hatte vor einiger Zeit eine ähnliche Sicherheitslücke.
Damals wurden Exception#to_s und NameError#to_s gefixt, aber
name_err_mesg_to_str() wurde übersehen und überlebte den
Sicherheitsfix.
Betroffene Versionen
- Alle Ruby-1.8.7-Releases vor Patchlevel 371
- Alle Ruby-1.9.3-Releases vor Patchlevel 286
- Alle Entwicklungszweige von Ruby 2 vor Revision r37068
Lösung
Auf die neueste Version aktualisieren.
Dank
Die Sicherheitslücke wurde von Tyler Hickes gefunden.
Updates
- Erstveröffentlichung des Originalbeitrags: 2012-10-12 19:17:50 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