EN JP CN

ANDROID.LIFECYCLE.SV.GETEXTRA

ANDROID.LIFECYCLE.SV.GETEXTRA

外部アプリケーションから取得したデータは、検証なしに使用されます

これは昇格特権の違反です。ブロードキャスト受信者がアプリ外からアクセス可能な場合、追加のデータフィールドに格納される入力をユーザーが無害化する必要があります。

脆弱性とリスク

android:exported フラグが指定されていないか false の場合は、オペレーティングシステムは、同一のキーによって署名されていない受信者への外部アプリのアクセスを許可しません。このフラグが true の場合は、外部ユーザーはブロードキャスト受信者 (サービスまたはアクティビティ) に送信できます。

軽減と防止

get*Extra() へのすべての呼び出し時に、使用される前に返された値に対する健全性チェックの一部が実行されることを確認します。

13 BroadcastReceiver m_batteryReceiver = new BroadcastReceiver() {
14   public void onReceive(Context arg0, Intent intent) {
15     String s = intent.getStringExtra("url");
16     Intent i = new Intent(Intent.ACTION_VIEW);
17     i.setData(Uri.parse(s));
18     startActivity(i);
19   }
20 };

ANDROID.LIFECYCLE.SV.GETEXTRA はライン 18 で報告されます。意図はアプリケーションの外部から来ます。追加情報が使用されて、アクティビティが開始されます。

関連チェッカー