rootsh 是一个针对 OS X Yosemite 10.10.5 build 14F27 的本地权限提升工具。它利用了 CVE-2016-1758 和 CVE-2016-1828,这两个 XNU 中的漏洞已在 OS X El Capitan 10.11.4 和 10.11.5 中修补。rootsh 无法在启用了 SMAP 的平台上运行。
CVE-2016-1758 是一个信息泄露漏洞,由于将内核栈中未初始化的字节复制到用户空间导致。通过比较泄露的内核指针与固定参考地址,可以恢复内核偏移(kernel slide)。
CVE-2016-1828 是一个在对象反序列化期间的释放后使用(use-after-free)漏洞。通过向内核传递精心构造的二进制序列化字典,可以触发对具有受控虚函数表指针的对象进行虚方法调用。
rootsh 代码已发布到公共领域(Public Domain)。作为礼节,我要求如果您在其他项目中使用了任何这些代码,请注明来源。