最終更新日 2007年8月20日
独立行政法人 情報処理推進機構
セキュリティセンター
「Ruby」は、オブジェクト指向スクリプト言語です。
「Ruby」は、Ruby 言語で書かれたプログラムの実行の際に、「セーフレベル」の設定によって、ファイルアクセスや OS コマンドの実行などを制限することができます。特にセーフレベル 4 は、「信用することのできないプログラムを実行するためのレベル」とリファレンスマニュアルで規定されており、いわゆる「サンドボックス機構」として働くことが期待されています。用途として、Ruby 言語で書かれたウェブアプリケーションで、プラグイン機能を実現するために使用されている例があります。
【参考 URL】Rubyリファレンスマニュアル - セキュリティモデル
http://www.ruby-lang.org/ja/man/?cmd=view;name=%A5%BB%A5%AD
%A5%E5%A5%EA%A5%C6%A5%A3%A5%E2%A5%C7%A5%EB
「Ruby」1.8.2 以前には、メソッドを定義した時点でのセーフレベルを、メソッドを実行する際に考慮しない問題があります。このため、信用できないプログラムを高いセーフレベルで実行したとしても、そのプログラムが生成したオブジェクト内のメソッドは、信用できないプログラムとして扱われません。ここで、このようなメソッドを低いセーフレベルで呼び出すと、呼び出し時のセーフレベルでメソッドが実行されます。この結果、信用できないプログラムの一部が、本来制限しているはずの操作を実行できてしまう問題があります。
「Ruby」で、セーフレベル 4 の機能をサンドボックス機構として使っているユーザは、「Ruby」を最新バージョンにアップデートしてください。特に、「Ruby」を利用して、他の利用者にサービスを提供している場合には、早急なアップデートが必要です。
最新情報は、JVN#62914675を参照してください。
「Ruby」で、セーフレベル 4 の機能をサンドボックス機構として使ったサービスを提供している場合には、サービスの利用者にこの問題を悪用される恐れがあります。
例えば、ウェブ日記のようなサービスを提供し、セーフレベル 4 の機能を使ったサンドボックス機構の中でプラグイン機能を実現している場合、この問題の影響を受けることがあります。この場合、プラグインの実行に対する制限を回避され、任意のプログラムを実行されることがあります。その結果、サーバ上の情報の取得や変更、OS コマンドの実行などが行われる可能性があります。
| 本脆弱性の深刻度 | □ I(注意) | ■ II(警告) | □ III(危険) |
|---|---|---|---|
| 本脆弱性のCVSS基本値 | 4.4 |
| AV:攻撃元区分 | ■ ローカル | □ 隣接 | □ ネットワーク |
|---|---|---|---|
| AC:攻撃条件の複雑さ | □ 高 | ■ 中 | □ 低 |
| Au:攻撃前の認証要否 | □ 複数 | □ 単一 | ■ 不要 |
| C:機密性への影響 (情報漏えいの可能性) |
□ なし | ■ 部分的 | □ 全面的 |
| I:完全性への影響 (情報改ざんの可能性) |
□ なし | ■ 部分的 | □ 全面的 |
| A:可用性への影響 (業務停止の可能性) |
□ なし | ■ 部分的 | □ 全面的 |
注)■:選択した評価結果
AV:AccessVector, AC:AccessComplexity, Au:Authentication,
C:ConfidentialityImpact, I:IntegrityImpact, A:AvailabilityImpact
深刻度が低くても、対策をしなくてよいということではありません。本ソフトウェアの利用者は必ず脆弱性対策を実施して下さい。
| 2007年8月20日 | 脆弱性の深刻度評価をCVSS v2へ移行 |
|---|---|
| 2007年3月28日 | 本脆弱性の深刻度を追記 |
| 2005年9月21日 | 掲載 |