详解苹果 macOS Mail 中的零点击漏洞

 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

本文作者 Mikko Kenttälä 在 Apple Mail 中发现了一个零点击漏洞,可添加或修改 Mail 沙箱环境中的任意文件。结果可导致多种恶意后果如在未授权情况下向第三方披露敏感信息等。攻击者可修改受害者的 Mail 配置如邮件重定向,通过密码重置接管受害者的其它账户。该漏洞可用于修改受害者的配置,使受害者以类似蠕虫的方式将攻击传递给其他人。苹果已于2020年7月修复。

概述

当时我正在研究另外一个漏洞,查看苹果的漏洞奖励类别并开始思考在无需任何用户动作的情况下可能会触发何种向量。显然想到的第一个主意是 Safari。我对 Safari 有一些了解但无法找到任何相关线索。我还想到了 Mail 或 iMessage。出于直觉我认为老旧代码库中隐藏着遗留功能,因此我集中精力攻克 Mail。于是我开始发送测试信息和附件,寄望于找到不同于正常邮件发送接收的异常情况。我发送了这些测试信息并按照 Mail 处理系统调用,了解到所发生的事情以及所接收到的邮件。

技术详情

描述

Mail 具有一个功能,可自动解压可被另外一名 Mail 用户自动压缩的附件。

在有效的用例中,如果用户创建了邮件并将文件夹添加为附件,那么就会自动压缩,zip 和 x-mac-auto-archive = yes;被添加到 MIME 标头。当另外一名 Mail 用户接收到邮件时,被压缩的附件数据被自动解压。

在研究过程中,我发现部分未压缩数据并未从临时目录中清理,且该目录在Mail 上下文中并非唯一,这就导致可使用这些被压缩文件中的符号链接,获得对 ~/Library/Mail 和 $TMPDIR 的未授权写权限。

事情经过

攻击者向受害者发送了附件为两个 zip 文件的邮件 exploit。当用户接收到邮件时,Mail 进行解析以发现标头为 x-mac-auto-archive=yes 的附件。之后,Mail 会自动解压这些文件。

第1阶段

第一个 zip 中包括一个符号链接,名为 Mail,它指向受害者 “$HOME/Library/Mail” 和文件 1.tex。Zip 被解压到 “$TMPDIR/com.apple.mail/bom/”。基于 “filename=1.txt.zip” 标头,1.txt 被复制到邮件 dir 且一切如常。然而,清理并未立即进行而符号链接被遗留。

第2阶段

第二个 zip 附件中包括想对 “$HOME/Library/Mail” 做出的修改,它会对Library/Mail 提供任意文件写权限。

在案例中,我为 Mail 应用程序编写了新的 Mail 规则。据此我们可以像受害者的 Mail 应用程序增加自动转发规则。

Mail/ZCZPoC
Mail/V7/MailData/RulesActiveState.plist
Mail/V7/MailData/SyncedRules.plist

Mail/ZCZPoC 中仅包含一个明问文件,它将被写入 ~/Library/Mail。

覆写 Mail 规则列表

文件可被覆写,而这也是 RulesActiveState.plist 和 SyncedRules.plist 文件发生的情况。

RulesActiveState.plist 的主要作用时激活 SyncedRules.plist 中的规则。

…
<dict>
<key>0C8B9B35–2F89–418F-913F-A6F5E0C8F445</key>
<true/>
</dict>
…

SyncedRules.plist 中包含一个匹配 “AnyMessage” 的规则,而该 PoC 集中的规则是当接收到信息时,让 Mail 应用程序播放莫尔斯电码声音。

…
<key>Criteria</key>
<array>
<dict>
<key>CriterionUniqueId</key>
<string>0C8B9B35–2F89–418F-913F-A6F5E0C8F445</string>
<key>Header</key>
<string>AnyMessage</string>
</dict>
</array>
…
<key>SoundName</key>
<string>Morse</string>

如不播放莫尔斯电码声音,它可能是推送规则泄露敏感的邮件数据等。

影响

这种任意写权限使攻击者操控 $HOME/Library/Mail 中的所有文件。她可导致通过操纵 Mail 应用程序的配置,将敏感数据暴露给第三方。可用配置选项可以是用户签名,使该漏洞可蠕虫。

或者也可能导致远程代码执行 (RCE) 漏洞,不过我并没有做出这种尝试。

时间线

  • 2020-05-16:发现漏洞

  • 2020-05-24:完成 PoC 并提交给 Apple

  • 2020-06-04:Catalina 10.15.6 Beta 4 发布,含热补丁

  • 2020-07-15:Catalina 10.15.6 更新,含热补丁

  • 2020-11-12:发布致谢 (CVE-2020-9922)

  • 2020-03-30:漏洞奖金仍在评估中

推荐阅读

隐藏十年的 Sudo 漏洞 (CVE-2021-3156) 还影响 macOS 和 IBM IAX

苹果紧急修复已遭利用的0day

揭秘新的供应链攻击:一研究员靠它成功入侵微软、苹果等 35 家科技公司

原文链接

https://mikko-kenttala.medium.com/zero-click-vulnerability-in-apples-macos-mail-59e0c14b106c

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值