1.概要Adobe Reader for Android には、任意の Java メソッドが実行可能な脆弱性が存在します。当該脆弱性を悪用されると、Adobe Reader for Android の動作権限で任意の Java メソッドを実行され、Android 端末の情報が窃取されたり、任意の OS コマンドが実行されたりする可能性があります。2.深刻度(CVSS)9.3http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2014-0514&vector=(AV:N/AC:M/AU:N/C:C/I:C/A:C)3.影響を受けるソフトウェアAdobe Reader for Android 11.1.3 およびそれ以前のバージョン4.解説Adobe Reader for Android は、Adobe 社が提供する、Android 端末向けのPDF 閲覧ソフトです。Adobe Reader for Android には、WebView のaddJavascriptInterface() の実装不備に起因する、任意の Java のメソッド実行の脆弱性が存在します。Adobe Reader for Android で、不正な JavaScript を含む PDF ファイルを開くと、任意の Java メソッドを実行され、Android 端末の情報が窃取されたり、任意の OS コマンドが実行されたりする可能性があります。Android には、Web サイトや HTML ファイルなどのコンテンツを表示するための WebView クラスが存在します。この WebView クラスには、Android アプリに実装された機能(Java のメソッド)を JavaScript から呼び出すことを可能にする、addJavascriptInterface() が存在します。例えば、addJavascriptInterface() を使用すれば、アプリが実装しているカメラ撮影機能やメール送信機能など、JavaScript の標準 API のみでは呼び出せない機能を呼び出せるようになります。しかし、Android Developer のサイトにも注意書きがあります(*1)が、不正なJavaScript のコードが含まれたコンテンツを処理すると、意図せず Android アプリに実装された機能機能(Java のメソッド)が実行されてしまいます。また、Java の reflection の仕組みを悪用することにより、アプリが実装していない機能も呼び出すことができてしまいます。結果的に、Adobe Reader for Android の動作権限で任意の Java メソッドを実行され、Android 端末の情報が窃取されたり、任意の OS コマンドが実行されたりする可能性があります。そのため、addJavascriptInterface() を利用する場合は、信用できるコンテンツのみ処理するように実装する必要があります。なお、対策方法を解説した日本語資料として、JSSEC の「Androidアプリのセキュア設計・セキュアコーディングガイド」(*2)や、IPA の「Androidアプリの脆弱性の学習・点検ツール AnCoLe」(*3)が存在します。(*1): http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(*2): http://www.jssec.org/report/securecoding.html(*3): http://www.ipa.go.jp/security/vuln/ancole/5.対策Adobe Reader for Android を 11.2 以降にアップデートすることで、この脆弱性を解消することが可能です。Google Play の下記ページより、最新バージョンが入手可能です。Google Play: Adobe Readerhttps://play.google.com/store/apps/details?id=com.adobe.reader&hl=ja6.ソースコード(Web非公開)(執筆:株式会社ラック サイバー・グリッド研究所)※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。Scan Tech Reporthttp://scan.netsecurity.ne.jp/archives/51916302.html