谷歌研究人员披露超危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触发漏洞
  • 完全远程利用,无需用户交互

技术机制

  1. 数据流路径:

    • iMessage信息在用户收到通知前会通过多个服务和框架传递
    • 远程攻击面包括iMessage数据格式和NSKeyedUnarchiver API
  2. 漏洞触发点:

    • 接收设备使用NSKeyedUnarchiver API解码ati域中的数据
    • 在解压NSSharedKeyDictionary过程中触发漏洞
    • 循环的对象图表在解码过程中被引用
  3. 内存损坏:

    • 当引用对象未能完全初始化时,反序列化过程中会出现内存损坏
    • 攻击者可借此绕过ASLR(地址空间布局随机化)
    • 最终可在沙盒外执行任意代码

潜在危害

  • 完全控制iOS设备
  • 窃取敏感数据:文件、密码、验证码、电子邮件、短信等
  • 通过麦克风和摄像头监控用户
  • 所有操作无需用户交互或任何可见指示

修复时间线

  1. 初步缓解:

    • 2019年8月: iOS 12.4.1发布,使脆弱代码无法通过iMessage访问
  2. 完全修复:

    • 2019年9月: iOS 12.4.2发布,通过优化输入验证彻底修复漏洞
    • 同时修复的版本: macOS Mojave 10.14.6, watchOS 5.3.2, tvOS 12.4
  3. 架构改进:

    • 从iOS 13开始,NSKeyedUnarchiver的解码只在沙盒化的IMDPersistenceAgent中进行,不在SpringBoard中执行

技术防护措施

防御机制

  1. 输入验证强化:

    • 苹果通过优化输入验证解决了越界读取问题
  2. 沙盒限制:

    • 将NSKeyedUnarchiver的解码操作限制在沙盒环境中
    • 隔离高风险操作,防止系统级影响
  3. 分层防御:

    • 先通过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漏洞,允许远程攻击者在无需用户交互的情况下完全控制设备。苹果通过多阶段更新逐步修复了该漏洞,从最初的访问限制到最终的代码修复。此案例凸显了复杂消息处理系统中反序列化操作的安全风险,以及分层防御策略的重要性。

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漏洞,允许远程攻击者在无需用户交互的情况下完全控制设备。苹果通过多阶段更新逐步修复了该漏洞,从最初的访问限制到最终的代码修复。此案例凸显了复杂消息处理系统中反序列化操作的安全风险,以及分层防御策略的重要性。