WeightBufs 是一个针对所有支持神经网络引擎的 Apple 设备的内核读写漏洞利用程序。
漏洞与利用程序由 @simo36 完成,你可以阅读我的 POC 演示幻灯片 了解有关漏洞和利用技术的更多细节。
该利用程序不依赖任何硬编码地址或偏移量,并且应该可以按原样在 macOS12 至 12.4 以及 *OS 15 至 15.5 上运行。
这些内核漏洞影响所有 iOS 15 版本(截至 16.0),但沙盒逃逸已在 iOS 15.6 上被修复。因此,需要破坏该利用链并找到另一个沙盒逃逸漏洞,才能在 iOS 15.6/15.7 上重新实现利用。 虽然我还有一个可工作到 iOS 16.1 的沙盒逃逸漏洞,但我不确定这些内核利用技术是否在 iOS 15.6+ 上仍然可用。
该利用程序串联了 4 个我独立发现并报告给 Apple 的漏洞:
CVE-2022-32845 : 针对 model.hwx 的 aned 签名检查绕过。CVE-2022-32948 : DeCxt::FileIndexToWeight() 因缺少数组索引验证导致越界读取。CVE-2022-42805 : ZinComputeProgramUpdateMutables() 因整数溢出问题导致的潜在任意读取。CVE-2022-32899 : DeCxt::RasterizeScaleBiasData() 因整数溢出问题导致缓冲区下溢。在某些情况下,该利用程序可能会失败:
MUTK,但利用程序会提前检测到失败,从而防止设备崩溃。只需再次运行该利用程序,第二次尝试就应该会成功。DEBUG_EXPLOIT_STAGE_2_KERN_PANIC 和 DEBUG_EXPLOIT_STAGE_3_KERN_PANIC 了解详细信息。WeightBufs 包含由 Elias Limneos 通过 classdump-dyld 1.0 生成的 AppleNeuralEngine 框架头文件。
WeightBufs 在 MIT 许可证下发布。