
Bietet eine schnelle Problemumgehung für den Segfault-Fehler in Ruby (CVE-2009-1904)
h1. BigDecimal Segfault Fix
Es gibt einen Segfault-Fehler in Rubys BigDecimal-Bibliothek, der von Benutzern durch die Angabe bekanntermaßen ungültiger Werte ausgelöst werden kann. Wenn Sie testen möchten, ob Ihre Anwendung sicher ist, führen Sie +example.rb+ aus. Dieses Skript sollte normal beendet werden, nicht mit einem Segfault.
Der Workaround hat negative Nebeneffekte. Insbesondere verhindert er, dass Sie BigDecimal für große Zahlen (mehr als 255 Ziffern) verwenden oder Zahlen in wissenschaftlicher Notation angeben können (z.B. "5E6" für 5000000). Wenn Sie diese Funktionen benötigen, müssen Sie auf ein gepatchtes Ruby upgraden.
Es wird dringend empfohlen, Ruby gemäß "den Anweisungen auf der Ruby-Website":http://www.ruby-lang.org/en/news/2009/06/09/dos-vulnerability-in-bigdecimal/ zu aktualisieren. Dieser Workaround ist nur für den vorübergehenden Gebrauch vorgesehen.
h2. Betroffene Ruby-Versionen:
h3. 1.8-Serie
h3. 1.9-Serie
h2. Installationsanleitung
h3. Gem-Installation
Dieser Fix ist als Gem auf GitHub verfügbar. Führen Sie zur Installation die folgenden Befehle aus:
$ gem sources -a http://gems.github.com $ sudo gem install NZKoz-bigdecimal-segfault-fix
Fügen Sie dann in Ihrem Code hinzu:
gem 'NZKoz-bigdecimal-segfault-fix' require 'bigdecimal-segfault-fix'
h3. Rails-Initializer-Installation
Um diesen Fix auf eine Rails-Anwendung anzuwenden, können Sie einfach die Datei +bigdecimal-segfault-fix.rb+ in Ihr config/initializers-Verzeichnis kopieren.