
Bitdefender 发现 Android 漏洞:无需代码和权限的应用即可让手机陷入启动死循环
来源标题:An Android app with no code or permissions can trap phones in a boot loop
Bitdefender Labs 发现,安装一个特制 Android 应用即可让手机陷入启动死循环,即使从未打开或授予任何权限。该应用不含代码、无需运行,安装后系统核心进程会反复崩溃重启,重启和安全模式均无效。恢复需恢复出厂设置并清除用户数据。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
公司 博客 登录 你的账户 Bitdefender Central GravityZone CLOUD Control Center MDR Portal 家庭版 企业版 合作伙伴 消费者洞察 实验室 企业洞察 反恶意软件研究 阅读时长 16 分钟 GhostMap:在你打开应用之前就让手机崩溃的 Android 漏洞 Alecsandru Cătălin DAJ 2026 年 11 月 5 日 Bitdefender Labs 的研究人员发现,安装一个经过特殊构造的应用,可以让 Android 手机陷入崩溃循环,即使你从未打开过它,也从未授予它任何权限。这个应用不包含任何代码,也永远不需要运行。 安装之后,一个核心系统进程会崩溃、重启、再次崩溃,让手机卡在启动循环中。重启无济于事,安全模式同样不行。 要让手机恢复正常,只能进行恢复出厂设置,这会抹掉用户数据。如果碰巧事先已启用 USB 调试,你还可以用一台电脑通过 ADB(Android Debug Bridge)在手机重启前删除该文件。 我们于 2026 年 8 月 12 日开始调查,当时从野外收集到的一个 APK 让我们的分析基础设施中的模拟器崩溃了。该样本是一个银行木马投放器,它从未运行,却在安装过程中崩溃。 当我们进一步追查原因时,发现问题不在恶意软件本身,而在 Android 自身。操作系统错误地处理了 ZIP 条目中的两个字段:压缩方法和声明的未压缩长度。读取这样一个条目,会让任何接触到该文件的进程收到 SIGBUS(CPU 发出的信号,用于终止访问了无效内存空间的进程)。 我们将其命名为 GhostMap:畸形条目导致 Android 把文件映射到从未分配的内存上,当进程从这片空白区域读取时,崩溃就发生了。 根据我们的测试,我们认为这个缺陷带来的风险相当大。理论上,攻击者可以把这一手法藏进一个假应用里,让受害者的手机瘫痪,或者以恢复出厂设置和数据丢失相要挟进行敲诈。畸形 APK 还可能干扰那些检查 Android 应用的工具。我们尚未在野外观察到上述任何一种情形。 那个银行木马投放器被一个加壳工具包裹过。加壳工具会重写 APK 的内部结构,使逆向工程工具无法读取。这在现代 Android 恶意软件中非常常见。 在这个案例中,同样的重写也破坏了 Android 在安装期间解析应用的那个组件。这正是安装一开始就崩溃、以及我们的模拟器在该样本上失败的原因。好消息是,样本中没有任何迹象表明作者知道这个文件会导致任何崩溃。 这个样本造成的后果也仅限于此——一次失败的安装。但底层的缺陷要深得多。我们发现,同样的错误可以针对核心系统服务,而不是安装器,在那里它会产生上文描述的那种反复崩溃循环,除了恢复出厂设置别无他法。这种升级利用是我们自己完成的;我们尚未见到它被用于攻击任何人。 底层问题在于 Android 如何信任 APK 文件中的大小和压缩信息,而且它并不限于畸形的 ZIP 文件。 我们通过 Android & Devices Vulnerability Reward Program 两次向 Google 报告了该问题,并在进一步测试确认存在持续的系统崩溃循环后扩充了第二次提交。 2026 年 8 月 12 日——初步发现。一个从野外收集的 APK 在安装期间让我们的分析基础设施中的模拟器崩溃。我们的调查将故障追溯到 Android 对 ZIP 条目压缩方法和声明未压缩长度的处理。 我们还发现,使用 Android 原生 API 解析 APK 的应用在读取这类文件时也可能崩溃。 我们复现了该缺陷,并有更多发现。每一次尝试安装该 APK 都会让操作系统崩溃并导致重启: 2026 年 8 月 20 日——首次向 Google 报告。我们提交了这些发现,记录了安装触发的崩溃以及应用在解析畸形 APK 时的失败。Google 随后不久便关闭了报告,状态为 Won't Fix(Not Reproducible,无法复现)。其随附的回复称该提交不在项目范围之内。 进一步调查——持续拒绝服务。我们继续测试,发现一个 APK 可以成功安装,但当系统服务自动读取某个应用资源时会崩溃。由此产生的崩溃循环阻止了对界面的访问,并且在安全模式下依然持续。恢复可能需要恢复出厂设置。 此后我们开始进一步调查。我们发现,还可以把其他不在安装时解析的文件做成畸形,而某些 Android 系统服务会尝试自动解析它们。这意味着循环会沿着常规路径进行:崩溃、重启、再次解析,然后再次卡在启动循环中。 我们造成的启动循环还会使安全模式访问失效,而我们找到的唯一恢复方法是恢复出厂设置,或者在有限条件下,用基于 ADB 的脚本与 system-server 的崩溃抢时间。 有意思的是,Google 早已修补过该缺陷的一个较弱版本。出自 2016 年 11 月公告的 CVE-2016-6724: 评级为 Moderate,已在 Android 4.4.4 至 7.0 上修复。2016 年时 Google 把需要恢复出厂设置的情况描述为暂时性的;而按我们的理解,Google 当前公布的危险程度指南将这种情况描述为持续性的,并评为 High。 2026 年 8 月 25 日——第二次向 Google 报告。我们提交了扩充后的发现,包括一个可用的概念验证和复现说明。报告说明该应用不需要任何权限,不包含可执行代码,也永远不需要启动。 Google 随后不久作出回应,称其认为该问题不在安全更新修复的范围之内。Google 还表示,已将这一发现转交给相关团队审查,并可能纳入未来的版本更新。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。