I. スーパーユーザー環境変数設定の脆弱性
製品への影響
ルート化されたAndroid <= 4.2.xシステム上で以下の認証管理アプリを使用している方は、影響を受ける可能性があります:
1.ChainsDDスーパーユーザー
2.CyanogenMod/ClockWorkMod/Koushスーパーユーザー
3, Chainfire SuperSU v1.69 旧バージョン
脆弱性の原則
1、偽のapp_processは、悪意のあるシェルコードが含まれています、シェルコードは、/システム/ binは環境変数に追加され、その後、デフォルトのため、データディレクトリにファイルを作成するroot権限を許可するだけで、電源の成功リフティングに代わってrootの成功の作成は、特定のコードは次のとおりです:
2.chmod 755 app_processを使って悪意のあるスクリプトapp_processに実行権限を与え、悪意のあるスクリプトapp_processがあるディレクトリを環境変数PATH=`pwd`:$PATHに追加します。
3.通常であれば、su -c 'true'コマンドはシステムのapp_processプログラムを実行しますが、悪意のあるスクリプトがあるディレクトリが環境変数に追加されているため、悪意のあるスクリプトapp_processが元のシステムのapp_processプログラムに置き換わって実行されるようになります。プロセスが実行されます。
4.環境変数BOOTCLASSPATHにも上記の問題があります。
第二に、AndroidSuperuserシェル文字のエスケープによるパワーリフティングの脆弱性。
製品への影響
2.Chainfire SuperSU v1.69バージョン
脆弱性の原則
1.ClockWorkMod Superuserでは、コマンド "su -c 'COMMAND'"を実行するために、以下のコードで実装されています。get_commandは、入力された "COMMAND "パラメータを取得するために使用されます:
2.get_commandは渡された "COMMAND "パラメータを効果的にエスケープしないため、以下のコマンドは制限を回避し、root権限でコマンドを実行することができます:
snprintf(user_result_command, sizeof(user_result_command),"exec /system/bin/am " ACTION_RESULT " --ei binary_version %d--es from_name '%s' --es desired_name '%s' --ei uid %d --ei desired_uid %d --escommand '%s' --es action %s --user %d",
VERSION_CODE,
ctx->from.name,ctx->to.name,
ctx->from.uid,ctx->to.uid, get_command(&ctx->to),
policy == ALLOW ?"allow" : "deny", ctx->user.android_user_id);3.SuperSUはある程度文字をフィルタリングしますが、バックスペース`と$記号はフィルタをバイパスすることができます:
su -c '`touch /data/abc`'
su -c '$(touch /data/abc)'第三に、AndroidSuperuser su -daemon 脆弱性を解除します。
製品への影響
以下の認証管理アプリをインストールしたAndroid >= 4.3のインストールが影響を受ける可能性があります:
1、CyanogenMod/ClockWorkMod/Koushスーパーユーザー現在のバージョン
脆弱性の原則
1.攻撃者はadbシェルにアクセスできる必要があります。
2、悪意のあるシェルファイルのトロイの木馬を作成し、主に環境を設定するために使用され、/data/trojan.outファイルを作成するため、データディレクトリがroot権限に作成することができます制限されているので、trojan.outファイルが生成された場合、それはroot権限が成功したことを意味します:
3、様々な一般的なコマンドやシェルファイルのトロイの木馬のリンクは、環境変数にトロイの木馬のディレクトリを追加し、悪意のあるスクリプトを実行するために一般的なコマンドを乗っ取る:
for x in id ls cp cat touch chmod chown iptables dmesg; do ln -strojan /data/local/tmp/$x ; done
PATH=/data/local/tmp:$PATH4.攻撃者は、su デーモンの主な機能のチェックを避けるために、suid 機能を持つ非シェル (uid が 2000 以外) の linux UID が必要です。これを行う可能性のある方法は、「debuggable」フラグを設定したアプリケーションをインストールし、run-asを使用してそのuidで実行することです。これは、run-as フラグを使用して、その uid でアプリケーションを実行することで可能です:
setsid run-as.422 my.debuggable.package /system/xbin/su --daemon&5.プログラムがsuperuserにroot権限を要求した場合、リンクされたコマンドが使用されると同時に、悪意のあるシェルファイルtrojan.outがroot権限で実行されます。




