Android“死亡短信”漏洞可导致通话中断并使手机陷入反复崩溃

阅读约需 7 分钟
Android SMS of Death Flaw Can Drop Calls and Trap Phones in Repeated Crashes

一条看不见的消息可以中断电话

一条经过特殊构造、仅有八字节的短信,可以使存在漏洞的安卓手机上的通话服务崩溃、中断正在进行的通话;如果反复收到此类短信,手机甚至可能难以正常启动。安全研究员 Mark Blaszczyk 于2026年10月29日披露了这一漏洞,此前他已于5月5日向谷歌报告。

目录
  1. 一条看不见的消息可以中断电话
  2. 为什么这条消息不会进入收件箱
  3. 一个大数变成了负长度
  4. 短暂中断如何演变为反复故障
  5. 为什么进入恢复界面可能意味着数据丢失
  6. 哪些安卓版本需要关注?
  7. 修复采用了不同于投诉处理的路径
  8. 修复方案改动了什么
  9. 手机用户现在可以怎么做
  10. 要点

该漏洞被称为“死亡短信”(SMS of Death),安全报道将其编号为 CVE-2026-58882。它影响的是一款软件:某些传入消息在到达短信应用之前,会由这款软件处理。收件人无需打开任何内容、安装应用或点击链接。Blaszczyk 表示,这条恶意消息不会出现在收件箱中,也不会触发通知。

Blaszczyk 在运行2026年4月固件的谷歌 Pixel 9,以及多款三星 Galaxy 手机上复现了这一问题,其中包括 Galaxy A 系列机型。他表示,在这些设备上的每次测试中都成功复现了漏洞。单条短信会导致安卓重启通话进程,使蜂窝网络服务中断约一至两秒。

独立安全研究员 Blaszczyk 描述了这一漏洞对负责安卓电话功能的进程造成的直接影响:

一条格式错误的 WAP Push 短信就会使安卓上的 com.android.phone 崩溃,导致正在进行的通话中断(包括紧急呼叫),受害者无需进行任何操作。

目前尚未报告测试环境之外的攻击;有关紧急服务可能受到影响的警告,来自研究人员的评估。受影响手机、运营商网络和国家的完整清单尚未公布。实际风险在于,短暂的服务中断可能导致通话结束,而反复中断则可能让人无法在需要帮助时保持联系。

广告

为什么这条消息不会进入收件箱

安卓通过 WAP Push 接收恶意内容。这是一种较早的机制,用于通过移动网络传送数据和指令。它的合法用途包括提示手机获取彩信或应用运营商设置。与供人阅读的普通短信不同,这类消息由系统软件自动处理。

安卓的 WapPushOverSms 组件负责处理这类消息。漏洞出现在该组件的解码函数中:手机读取消息中一部分内容长度信息时会发生问题。由于通话服务在常规消息处理完成之前就遇到错误,收件人看不到可供查看或删除的短信内容。

因此,这种攻击绕过了人们通常判断消息是否可疑的环节。忽略陌生发件人或拒绝打开链接,对这种由自动处理触发的故障几乎没有帮助。防护主要取决于修复负责处理该消息的操作系统组件。

一个大数变成了负长度

Blaszczyk 追查后发现,崩溃源于数字转换错误。安卓使用能够存储大数值的数据类型读取消息头长度,随后将该数值转换为32位有符号整数,却没有先检查它是否超出范围。

在所述测试中,数值 2,147,483,648 在转换过程中变成了负数 -2,147,483,648。此类32位有符号整数的最大正数为 2,147,483,647。恶意构造的数值刚好超出这一上限。

随后,安卓试图根据这个负长度为一段数据预留空间。负数大小不适用于这种操作,因此软件会抛出名为 NegativeArraySizeException 的错误。由于该错误未得到妥善处理,com.android.phone 进程随之终止。

这条八字节消息包含一个五字节序列,用于提供有问题的长度信息。消息如此之小,更凸显了漏洞的严重性:一个极小的传入消息,就能在中央系统进程解析它时引发更大范围的故障。

广告

短暂中断如何演变为反复故障

移动运营商通常要求手机确认已收到消息。如果安卓在完成这一交互之前崩溃,运营商可能会再次尝试投递。原本旨在提高短信可靠性的机制,反而可能把同一条有害内容再次发送到手机。

安卓在处理传入消息时,也会将其保存在待处理队列中。Blaszczyk 表示,格式错误的消息可能留在队列里,并在重启后再次处理,从而引发新一轮崩溃。

Blaszczyk 解释了为什么重启设备可能无法结束故障:

格式错误的消息会留在队列中,每次开机都会重试,因此在清除它之前,手机可能会在启动时持续崩溃。

Blaszczyk 警告称,大约20条此类消息就可能让设备长时间无法使用。测试还显示,约30条消息快速到达后,故障会变得更加持久。这些数字反映的是测试条件,并非所有手机都会达到的精确阈值。

研究人员认为,部分持续性故障源于用于存储传入短信数据的 SQLite 数据库遭到损坏。SQLite 是一种轻量级数据库系统,应用和操作系统会用它保存结构化记录。如果启动时需要读取的记录反复触发故障,通话服务就可能在手机每次尝试恢复时再次崩溃。

测试中,运营商重新投递消息导致通话功能间歇性故障,最长持续一周;研究人员表示,即使只有一条恶意短信,也可能造成此类问题。运营商暂存的消息与手机上存储的记录共同作用,有助于解释为什么影响可能持续到最初投递之后。

为什么进入恢复界面可能意味着数据丢失

安卓内置了一项名为 RescueParty 的自动恢复机制。关键组件反复故障时,该机制会尝试恢复;大约90秒后,手机可能进入恢复模式。此时,用户可能会看到清除数据的选项。

恢复出厂设置会清除本地数据和设置。Blaszczyk 报告称,测试中重置只能暂时缓解问题,因为运营商之后仍可能重新投递尚未收到确认的消息。选择清除手机数据的用户,可能会丢失个人信息,之后还可能再次遭遇崩溃。

广告

Blaszczyk 介绍了一种通过 Android Debug Bridge(ADB)进行恢复的方法。ADB 是一款允许电脑与安卓设备通信、用于开发和维护的工具。他的操作步骤是在手机短暂可用期间,清除受影响的短信记录。

通过 ADB 恢复需要具备技术条件,许多用户此前并未配置好所需连接。研究人员介绍的恢复方法还包括将实体 SIM 卡插入一台非安卓手机,以便接收并确认尚未处理的消息。他提醒,如果移动套餐使用 eSIM,恢复可能会更加困难。

如果手机反复崩溃,最实际的做法是在选择清除数据之前寻求专业技术帮助。研究人员所述的恢复过程涉及系统记录和访问设置,比删除普通短信复杂得多。

哪些安卓版本需要关注?

技术报告所述的主要受影响范围为安卓12至安卓16。部分报告将范围延伸至安卓17。测试明确提到了 Pixel 和三星 Galaxy 设备;由于问题位于安卓共享的电话功能代码中,疑似受影响范围更广。

据报道,2026年10月发布的修复适用于安卓14至安卓17。仍在运行安卓12或安卓13的手机是最值得关注的支持问题:据称,这些版本已不在谷歌当前的安全支持范围内,用户只能依赖手机厂商或其他操作系统提供方发布修复。

手机的安卓版本和安全更新状态回答的是不同问题。版本号表示操作系统的代际,而安全更新信息有助于了解漏洞最近一次得到修复的时间。两部运行相同安卓版本的手机,收到修复的时间可能不同。

厂商和运营商会影响更新何时推送到各款机型。用户应在“设置”中查看安全更新日期,通常位于“关于手机”“安全”或“软件更新”下,并安装最新可用更新。对于这一漏洞,据报道,修复包含在2026年10月更新中;如果发布时间不明确,最好查看厂商针对具体机型发布的确认信息。

广告

修复采用了不同于投诉处理的路径

Blaszczyk 表示,谷歌最初将他的报告归类为非安全问题,并在未同意他所要求的处理方式的情况下结案。他公开的说明称,之后他提出了进一步申诉,报告于10月29日再次被归类为非安全问题。与此同时,安卓工程师一直在开发修复方案。

据报道,研究人员投诉的处理流程与代码在安卓开发和更新系统中的推进过程并不相同:

  • 2026年5月5日:Blaszczyk 首次向谷歌报告该漏洞。
  • 6月15日:谷歌为消息处理故障编写了工程修复方案。
  • 7月:GrapheneOS 表示,它通过安全预览渠道收到补丁,并于当月完成部署。
  • 8月5日:据报道,该修复已纳入谷歌的开发流程。
  • 10月:这项修改在 Android Open Source Project 中公开,并纳入安卓14至安卓17的更新。
  • 10月29日:Blaszczyk 公开披露了调查结果。
  • 11月:GrapheneOS 表示,预计该漏洞会出现在安卓安全公告中。

GrapheneOS 推测,内部沟通问题或许能解释谷歌对这份报告的处理方式。这只是该操作系统项目开发人员的猜测。此处所述经过既包括一项被驳回的投诉,也包括一项旨在阻止崩溃的工程修改。

11月的安全公告是当时公布的下一项进展。GrapheneOS 表示,它已于7月部署修复,因此,之后的公告日期涉及公开安全文档,而不是该补丁首次部署的时间。

修复方案改动了什么

据报道,谷歌的修复方案扩展了异常处理机制,使安卓能够捕获运行时错误,并从待处理队列中移除格式错误的消息。这样,系统便可跳过有害记录继续处理,而不会反复因此崩溃。

Blaszczyk 曾建议在转换长度之前检查消息头中声明的长度是否合法。据报道,工程团队采取的方案是捕获错误并清除导致问题的消息。从实际效果看,移除该记录也能解决反复处理问题,避免单次投递演变成持续的服务故障。

据介绍,修复方案会在遇到格式错误的消息时立即处理。测试中提到约20条消息,是为了说明反复中断的严重程度,并不意味着修复要等到收到这么多消息才会生效。

广告

修复代码出现在 Android Open Source Project 中,意味着相关代码已可供集成到安卓软件中。但要推送到具体用户的手机,仍需为该机型构建并发布合适的更新。因此,除了知道谷歌已修复代码之外,确认具体机型的支持状态也很重要。

手机用户现在可以怎么做

受支持手机的用户应安装最新系统安全更新,并查看厂商的发布说明或支持信息,确认修复是否已推送。使用安卓12或安卓13的用户应询问自己的机型是否会收到补丁,或能否升级到仍受支持的安卓版本。

Blaszczyk 已发布演示应用及其源代码,因此及时部署补丁更显迫切。他在发布内容中警告,不要将其用于攻击他人,尤其是因为干扰紧急通信可能造成严重危险。

如果手机反复失去蜂窝网络服务或重启,用户应联系设备厂商或具备资质的维修服务商。如果手机显示恢复提示,而用户又希望保留数据,应谨慎操作。若手机无法维持通话且需要紧急帮助,应使用另一部可正常工作的手机。

对用户来说,最重要的一点很明确:故障发生时,还没有一条可供判断是否可疑的短信。对于受支持的设备,最实际的防护方式是为正在使用的具体手机安装最新安全更新。

要点

  • 格式错误的 WAP Push 短信无需收件人进行任何操作,就能使安卓通话服务崩溃。
  • Blaszczyk 在 Pixel 9 和三星 Galaxy 设备上复现了该漏洞;单次中断持续约一至两秒。
  • 反复处理和运营商重新投递可能导致长期故障、反复崩溃和恢复提示。
  • 据报道,2026年10月的修复适用于安卓14至安卓17。安卓12和安卓13用户则需要依赖设备提供方进一步提供支持。
  • 目前尚未报告测试环境之外的攻击。研究人员警告,通话受干扰可能影响用户联系紧急服务。
  • 恢复出厂设置会清除数据,之后仍可能再次收到有害消息。技术恢复可能需要使用 ADB。
分享本文

猜你喜欢