@OSG-PEDIY wrote:
在没有获得引用的情况下,IOSurfaceRootUserClient在+0xf0地址通过IOServiceOpen存储了一个任务结构指针。
通过kill相应的任务,我们可以释放掉这个指针,从而为用户端留下一个挂起指针。
通过调用create_surface_fast_path 外部方法我们可以得到这个指针,这个方法将会尝试读取和使用这块已被释放的任务结构的内存映射。
这个bug可以被用来引发内核内存崩溃,这可以通过一些有趣的沙箱比如safari或者chrome来实现。
build: clang -o surfaceroot_uaf surfaceroot_uaf.c -framework IOKit
你要设置gzalloc_min=1024,gzalloc_max=2048 或者类似于UAF的实际错误,否则可能会得到一些奇怪的崩溃。
已在 MacBookAir5,2 ,OS X 10.11.5(15F34)上测试。
原文链接:https://bugs.chromium.org/p/project-zero/issues/detail?id=831
翻译:布兜儿(看雪ID:我有亲友团)
Posts: 1
Participants: 1