谷歌的Project Zero团队以其在公司内部以及其他公司生产的产品中发现并披露安全漏洞的能力而闻名。其成员在软件中找到缺陷,私下向制造商报告,并在公开披露之前给他们90天的时间来解决问题。去年,该团队发现了Windows 10 S和Microsoft Edge的漏洞。现在,它暴露了macOS内核中的“高严重性”缺陷。
谷歌Project Zero的一名安全研究人员发现,尽管macOS的内核XNU在某些情况下允许写入时复制(COW)行为,但任何复制的内存都不可用于源进程的修改。虽然COW是一种本质上没有缺陷的资源管理技术,但还是留下了一些问题。
Project Zero发现,如果修改了用户拥有的已挂载文件系统映像,则不会通知虚拟管理子系统这些更改,这意味着攻击者可以采取恶意操作,而无需挂载的文件系统了解它。
这种写时复制行为不仅适用于匿名内存,还适用于文件映射。这意味着,在目标进程开始从传输的存储区读取之后,存储器压力可能导致保留传输的存储器的页面被从页面缓存中逐出。稍后,当再次需要被驱逐的页面时,可以从后备文件系统重新加载它们。
这意味着如果攻击者可以在不通知虚拟管理子系统的情况下改变磁盘文件,由此形成了一个高危安全漏洞。 macOS允许普通用户挂载文件系统映像。当安装的文件系统映像直接发生变化时(例如,通过在文件系统映像上调用pwrite()),此信息不会传播到已安装的文件系统中。
研究人员向苹果公司通报了发现于2018年11月的这一缺陷,但该公司在超过90天的最后期限之后仍未修复,这就是为什么这个漏洞现在以“高严重性”标签公开。不过,苹果已经收到了这个问题,正在与Project Zero合作开发未来macOS版本的补丁。
您还可以在此处查看专用网页上演示此问题的概念验证代码。