谷歌研究人员披露超危iMessage漏洞详情
字数 1420 2025-08-18 11:39:15
iMessage漏洞CVE-2019-8641技术分析文档
漏洞概述
漏洞编号: CVE-2019-8641
CVSS评分: 9.8(超危)
发现者: Google Project Zero团队的Samuel Groß和Natalie Silvanovich
影响范围:
- iPhone 5s、iPhone 6、iPhone 6 Plus
- iPad Air、iPad mini 2、iPad mini 3
- iPod touch第6代
- macOS Mojave 10.14.6
- watchOS 5.3.2
- tvOS 12.4
漏洞详情
漏洞类型
这是一个越界读取漏洞,位于NSKeyedUnarchiver组件中,可通过iMessage触发。
攻击向量
- 攻击者需要知道受害者的Apple ID(手机号码或电子邮件地址)
- 通过发送特制的iMessage payload触发漏洞
- 完全远程利用,无需用户交互
技术机制
-
数据流路径:
- iMessage信息在用户收到通知前会通过多个服务和框架传递
- 远程攻击面包括iMessage数据格式和NSKeyedUnarchiver API
-
漏洞触发点:
- 接收设备使用NSKeyedUnarchiver API解码ati域中的数据
- 在解压NSSharedKeyDictionary过程中触发漏洞
- 循环的对象图表在解码过程中被引用
-
内存损坏:
- 当引用对象未能完全初始化时,反序列化过程中会出现内存损坏
- 攻击者可借此绕过ASLR(地址空间布局随机化)
- 最终可在沙盒外执行任意代码
潜在危害
- 完全控制iOS设备
- 窃取敏感数据:文件、密码、验证码、电子邮件、短信等
- 通过麦克风和摄像头监控用户
- 所有操作无需用户交互或任何可见指示
修复时间线
-
初步缓解:
- 2019年8月: iOS 12.4.1发布,使脆弱代码无法通过iMessage访问
-
完全修复:
- 2019年9月: iOS 12.4.2发布,通过优化输入验证彻底修复漏洞
- 同时修复的版本: macOS Mojave 10.14.6, watchOS 5.3.2, tvOS 12.4
-
架构改进:
- 从iOS 13开始,NSKeyedUnarchiver的解码只在沙盒化的IMDPersistenceAgent中进行,不在SpringBoard中执行
技术防护措施
防御机制
-
输入验证强化:
- 苹果通过优化输入验证解决了越界读取问题
-
沙盒限制:
- 将NSKeyedUnarchiver的解码操作限制在沙盒环境中
- 隔离高风险操作,防止系统级影响
-
分层防御:
- 先通过12.4.1版本阻止远程利用途径
- 后在12.4.2中彻底修复根本问题
缓解建议
- 确保设备运行iOS 12.4.2或更高版本
- 对于无法升级的设备,考虑禁用iMessage功能
- 警惕未知来源的iMessage信息
研究资源
- Project Zero已发布针对iOS 12.4的PoC代码(iPhone XS平台)
- PoC设计特点:
- 包含受害者告警机制
- 故意未实现本地代码执行
- 技术熟练的攻击者可自行修改实现完整利用
总结
CVE-2019-8641是一个极其危险的iMessage漏洞,允许远程攻击者在无需用户交互的情况下完全控制设备。苹果通过多阶段更新逐步修复了该漏洞,从最初的访问限制到最终的代码修复。此案例凸显了复杂消息处理系统中反序列化操作的安全风险,以及分层防御策略的重要性。