浮動小数点数パースにおけるヒープオーバーフロー (CVE-2013-4164)
Posted by tenderlove on 22 Nov 2013
Translated by unak
Ruby において、浮動小数点数のパース時にヒープオーバーフローが発生しうるという問題が報告されました。 この脆弱性は CVE-2013-4164 として CVE に登録されています。
脆弱性の詳細
文字列を浮動小数点数値に変換する際に、意図的にヒープオーバーフローを発生させる文字列を構成できることが判明しました。 これによって、セグメンテーションフォールトによるサービス拒否攻撃を行うことができ、また、潜在的には不正なコードの実行を可能とする可能性があります。 出所不明なデータを受け付けて浮動小数点数値に変換する全てのプログラム (例えば JSON 形式での入力を受け付けるものなども該当します) が、この脆弱性の影響を受けます。
例えば、以下のようなコードが該当します:
untrusted_data.to_f
しかし、これに限らず、外部のデータから浮動小数点数値を生成する全てのコードに問題があります。例としては以下のようなものです:
JSON.parse untrusted_data
この不具合は、CVE-2009-0689 として過去に報告されているものに類似しています。
この脆弱性を含むバージョンの Ruby を利用している全てのユーザーに対して、修正後のバージョンへの更新を推奨します。
影響するバージョン
- Ruby 1.8.6 patchlevel 230 以降の全ての Ruby 1.8 系列
- Ruby 1.9.3 patchlevel 484 より前の全ての Ruby 1.9 系列
- Ruby 2.0.0 patchlevel 353 より前の全ての Ruby 2.0 系列
- Ruby 2.1.0 preview2 より前の全ての Ruby 2.1 系列
- trunk のリビジョン 43780 より前の全ての Ruby 開発バージョン
回避策
この脆弱性を修正したバージョンである、Ruby 1.9.3 patchlevel 484、Ruby 2.0.0 patchlevel 353、もしくは Ruby 2.1.0 preview2 へのアップグレードを行ってください。
なお、Ruby 1.8 系列は既にメンテナンスが終了しており、今回の脆弱性を修正したバージョンをリリースする予定はありません。
クレジット
この脆弱性は Charlie Somerville によって報告されました。
更新履歴
- 2013-11-22 12:03:00(JST) 初版
- 2013-11-22 14:46:00(JST) 2版
- 2013-11-23 07:45:00(JST) 3版
- 2013-12-10 21:09:38(JST) 4版
最近のニュース
Ruby 3.3.12 リリース
Ruby 3.3.12 がリリースされました。
Posted by hsbt on 16 Jul 2026
Ruby 3.4.10 リリース
Ruby 3.4.10 がリリースされました。
Posted by nagachika on 30 Jun 2026
Ruby 4.0.2 リリース
Ruby 4.0.2 がリリースされました。
Posted by k0kubun on 16 Mar 2026
Ruby 3.4.9 リリース
Ruby 3.4.9 がリリースされました。
Posted by nagachika on 11 Mar 2026