h1. BigDecimal Segfault Fix
BigDecimalライブラリにセグフォルトバグがあり、既知の不正な値をユーザーが提供することでトリガーされる可能性があります。アプリケーションが安全かどうかをテストするには、+example.rb+ を実行してください。このスクリプトは正常に終了し、セグフォルトを起こさないはずです。
この回避策には副作用があります。具体的には、BigDecimal を使用して大きな数値(255桁以上)を扱うことや、科学的記数法(例:5000000に対して "5E6")で数値を指定することができなくなります。これらの機能が必要な場合は、パッチが適用された Ruby にアップグレードする必要があります。
Ruby のアップグレードは、"Ruby サイトの指示":http://www.ruby-lang.org/en/news/2009/06/09/dos-vulnerability-in-bigdecimal/ に従って行うことを強くお勧めします。この回避策は一時的な使用のみを目的としています。
h2. 影響を受ける Ruby バージョン:
h3. 1.8 系
h3. 1.9 系
h2. インストール手順
h3. Gem インストール
この修正は gem として github から入手可能です。インストールするには、以下のコマンドを実行してください:
$ gem sources -a http://gems.github.com $ sudo gem install NZKoz-bigdecimal-segfault-fix
次に、コードに以下を追加します:
gem 'NZKoz-bigdecimal-segfault-fix' require 'bigdecimal-segfault-fix'
h3. Rails Initializer インストール
この修正を Rails アプリケーションに適用するには、+bigdecimal-segfault-fix.rb+ ファイルを config/initializers ディレクトリにコピーするだけです。