Oracle Java SE 7 の ProviderSkeleton クラスの実装に起因する任意コード実行の脆弱性(Scan Tech Report)
Oracle Java SE 7 の ProviderSkeleton クラスにサンドボックスによるセキュリティ制限を回避して、任意のコードが実行可能な脆弱性が報告されました。
脆弱性と脅威
エクスプロイト
Oracle Java SE 7 の ProviderSkeleton クラスにサンドボックスによるセキュリティ制限を回避して、任意のコードが実行可能な脆弱性が報告されました。ユーザが悪質な Java アプレットを使用する Web ページを閲覧した場合、リモートの第三者によってシステム上で不正な操作が実行される可能性があります。
この脆弱性 (CVE-2013-2460, Issues 61) は、多くの Java SE の脆弱性を報告している Security Explorations 社が発見し、2013/6/19 の Oracle 社より提供された定例アップデート (June 2013 CPU for Java SE) で解消した問題の内の 1 つになります。
脆弱性を悪用された場合の影響度が高く、今後、当該脆弱性を悪用するマルウェア等が出現する可能性も考えられるため、影響を受けるバージョンの Java SE 7 を利用するユーザは可能な限り以下に記載する対策を実施することを推奨します。
2.深刻度(CVSS)
9.3
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2013-2460&vector=%28AV%3AN/AC%3AM/Au%3AN/C%3AC/I%3AC/A%3AC%29
3.影響を受けるソフトウェア ※
Java SE (JDK and JRE) 7 Update 21 以前
※1 OpenJDK 7 も、この脆弱性の影響を受けることが報告されています。
また、影響を受けるバージョンの Java SE パッケージが含まれる Linux や UNIX においても、この脆弱性の影響を受ける可能性があります。
4.解説
Oracle Java SE 7 には、sun.tracing.ProviderSkeleton クラスにおいて、invoke メソッドに対するアクセス制限のチェックに不備があります。
このため、当該メソッドを介して作成したオブジェクトを利用して java.lang.Class クラスの forName メソッドを呼び出すことで、本来アクセスすることができない sun.org.mozilla.javascript.internal.* パッケージなどの制限付きクラスを参照し、System クラスのオブジェクトとして、MethodHandles.Lookup オブジェクトのインスタンスを作成可能な脆弱性が存在します。
この脆弱性を利用することで、リモートの攻撃者は当該インスタンスを介して SecurityManager (サンドボックス) を無効にし、Java SE を実行するユーザの権限で任意のコード実行が可能となります。
なお、この脆弱性は、Java ベースのクライアントアプリケーションのみが影響を受け、信頼できない Java アプリケーションを介してのみ悪用される可能性があると、Oracle 社は報告しています。
5.対策
以下の Web サイトより、Java SE (JDK and JRE) 7 Update 25 以降を入手しアップデートすることで、この脆弱性を解消することが可能です。
Java のダウンロード
http://java.com/ja/download/
あるいは、以下の Web サイトを参考に、システムで利用する各ブラウザの Java プラグインを無効にする、または Java SE 7 Update 10 以降にアップデート後、Java コントロールパネルからブラウザにおける Java プラグインを無効にすることで、この脆弱性を回避することが可能です。
WebブラウザでJavaを無効にするにはどうすればよいですか。
http://www.java.com/ja/download/help/disable_browser.xml
6.ソースコード
(Web非公開)
(執筆:株式会社ラック サイバー脅威分析センター)
※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。
Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《吉澤 亨史( Kouji Yoshizawa )》