CVE-2022-46689(又名 MacDirtyCow)的示例。
MacDirtyCow 是 macOS 中的一个权限提升漏洞,类似于 Linux 中的 Dirty COW 漏洞。该漏洞位于 macOS 的 XNU 内核所使用的写时复制(COW)机制中。该漏洞允许攻击者修改只读的 root 所有文件,这可能导致攻击者在受影响系统上获得 root 权限。
该漏洞是由 macOS 的 XNU 内核处理内存页写时复制(COW)操作时的竞争条件引起的。当内存页被标记为只读,但同时也被标记为写时复制时,内核会在对该页执行写操作时创建该页的新副本。然而,在只读页被检查和创建新副本之间存在一个短暂的时间窗口,攻击者可以在此时修改内存中的页面,从而有效绕过只读限制。
此代码(poc.c)打开通过命令行参数指定的文件,并使用 mmap() 将其映射到内存中。然后它会创建该文件的副本,并通过用字符 'A' 填充来修改该文件的内存映射副本。最后,原始文件会被修改后的文件副本覆盖。