一条畸形WAPPush短信如何远程让安卓手机崩溃甚至“变砖”"

admin 2026-11-01 01:38:01 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

一条畸形WAP Push短信如何远程让安卓手机崩溃甚至“变砖”

原创

黑鸟
黑鸟

黑鸟

2026年10月29日 23:36
广东

去阅读

安卓系统中存在一个看似不起眼的类型转换缺陷,让攻击者只需发送一条特殊短信,就能在无需任何用户操作的情况下让手机电话服务进程崩溃。快速连续发送时,还可能损坏短信数据库,导致手机每次开机都崩溃,漏洞名为SMS of Death。

smsofdeath[.]com

图:畸形WAP Push短信触发NegativeArraySizeException的大致流程

零点击、静默、远程

当安卓手机收到一条WAP Push消息时,系统会调用WapPushOverSms.decodeWapPdu()来解析它。WAP Push是一种数据短信,通常走端口2948,不会出现在普通收件箱里,用户也看不到发送方号码。

代码会把WSP头部长度按uintvar读成一个long类型的值,然后直接强制转换为int,再拿这个int去分配一个byte数组:

int headerLength = (int) pduDecoder.getValue32();

byte[] header = new byte[headerLength];

问题出在这个转换没有做范围检查。一个仅5字节的uintvar值88 80 80 80 00会被解码成0x80000000。把它强转成有符号32位int后,就变成了-2147483648。此时执行new byte[-2147483648]会立刻抛出未捕获的NegativeArraySizeException。

这个异常发生在telephony主线程上,直接把com.android.phone进程杀掉。正在进行的通话会被中断,断开原因记为CS\_DEATH。整个过程不需要用户点击、打开或确认任何东西,属于真正的零点击攻击。

图:进程崩溃后电话功能与紧急呼叫同时失效的示意

从短暂断网到持久“变砖”

单条消息通常只会造成1到2秒的服务中断,com.android.phone重启后恢复。但由于手机没有正常确认这条数据短信,运营商会按照重发策略反复投递,测试中一条消息就能让手机在长达一周的时间里间歇性掉线。

更严重的情况出现在快速连续发送时。大约20到30条消息会让崩溃与短信数据库的写入操作交错发生,触发竞态条件,最终把存储短信的SQLite数据库损坏。一旦数据库损坏,com.android.phone在开机读取存储时就会立即崩溃,手机从此每次启动都无法正常提供电话服务,重启也无法自愈。

恢复并不简单。

恢复出厂设置只能暂时有效,因为运营商仍会重发未确认的消息,重新触发崩溃。

完整恢复通常需要先把物理SIM卡插到非安卓设备(比如iPhone)上让运营商停止重发,再用ADB清除损坏的短信记录。对于使用eSIM的设备,这个过程会更加困难,普通用户几乎无法自行完成。

紧急呼叫与监管后果

通话中断的影响在普通场景下可能只是麻烦,但如果正在拨打紧急号码,后果就完全不同。设备处于攻击中或已经被SQLite损坏时,无法可靠地拨通000。攻击只需要知道对方手机号,且完全无声无息。

澳大利亚把紧急呼叫能力视为移动服务的强制要求。根据Telecommunications (Emergency Call Service) Determination,运营商必须识别无法接通Triple Zero的手机,协助用户更换设备,并最终停止向该设备提供服务。Telstra公开表示,若手机无法拨打000,会在通知用户后于28天内进行屏蔽。

这样一来,攻击者远程制造的“无法拨打紧急呼叫”状态,反而可能触发运营商按规定切断该设备的网络服务。监管框架本意是保护公共安全,却在这个缺陷面前变成了放大伤害的机制。2024年相关规定在3G退网后进一步收紧,正是因为当时出现过能打普通电话却打不通紧急号码的设备,而这个漏洞可以按需制造同样的状态。

一行代码的修复与厂商态度

修复方案非常直接,只需在转换前增加范围检查:

long rawHeaderLen = pduDecoder.getValue32();

if (rawHeaderLen < 0 || rawHeaderLen > pdu.length) {

result.statusCode= Intents.RESULT\_SMS\_GENERIC\_ERROR;

returnresult;

}

独立研究员Mark Blaszczyk在2026年5月5日通过Android & Devices VRP报告了这个问题,并在同一天提供了上述修复建议。随后经过多次申诉,涉及三个工单和四名工程师,Google最终将其归类为Non-Security Issue,并给出Won't Fix的决定,理由是未达到严重性阈值。

测试覆盖了Pixel 9(2026年4月固件)以及多款三星Galaxy和A系列机型,复现率100%。

漏洞存在于frameworks/opt/telephony中的WapPushOverSms组件,影响范围较广。

公开披露与概念验证

在超过90天的协调披露期后,相关细节于2026年10月29日公开。GitHub上发布了概念验证应用与完整源码,应用可构造畸形WAP Push PDU并以数据短信形式发送。github[.]com/MarkBlah/smsofdeath

图:公开的概念验证仓库(仅供授权测试使用)

需要强调的是,这类工具只能在自己拥有或已获得明确授权的设备上使用。对他人手机实施此类攻击在多数国家属于违法行为,尤其是干扰他人拨打紧急电话的能力,会构成严重犯罪。

目前没有分配CVE编号。对于使用安卓设备的用户来说,在厂商正式修复前,很难从系统层面完全规避这类静默数据短信攻击。运营商侧如果能对异常WAP Push进行过滤,或许能提供一定缓解,但目前公开信息中尚未看到大规模部署的防御措施。

这个缺陷的本质是一个缺少边界检查的类型转换,却能在远程、零交互的条件下摧毁电话服务可用性,甚至在快速攻击下造成持久性拒绝服务。紧急呼叫受影响的事实,叠加部分地区的严格监管,使得问题的实际危害远超单纯的“进程崩溃”。

黑鸟认为,一行代码即可修复,却被长期归类为非安全问题,这个处理结果本身也值得进一步讨论。

研究人员发现星链用户遭大规模监控" 网络安全文章

研究人员发现星链用户遭大规模监控"

多项独立调查揭示以色列广告公司Discover-Tech在105个国家竞标星链广告展示次数,成为最高出价者之一,研究人员认为这可能是一项针对星链用户的大规模监控行动。该公司与间谍软件Candiru有关联,广告触达北约、欧洲议会、美国国防部等敏感机构相关网络。谷歌和IABEurope已终止与该公司合作。
红队工具DumpHash" 网络安全文章

红队工具DumpHash"

介绍了SamTheButcher工具,一个用于提取WindowsNTFS磁盘凭证的独立可执行文件,具有原始磁盘访问、内联哈希解密、内存模式、VSS后备方案等特性,适用于本地靶场安全测试和防御研究。
评论:0   参与:  0