@OSG-PEDIY wrote:
在没有获得引用的情况下,IOHDXIControllerUserClient在+0x1f8地址通过IOServiceOpen存储了一个任务结构指针。
通过kill这个任务,我们可以释放这个指针,从而为用户端留下一个挂起指针。通过调用CreateDrive64外部方法,我们可以得到这个指针,这个方法将会试图读取和利用这块已被释放的任务结构的内存区域。
这个bug可以用于引发内存崩溃。
build: clang -o iohdix_task_uaf iohdix_task_uaf.c -framework IOKit
你应该设置gzalloc_min=1024,gzalloc_max=2048 或者类似于UAF的实际错误,否则可能会得到一些奇怪的崩溃。
已在 MacBookAir5,2 ,OS X 10.11.5(15F34)上测试。
Posts: 1
Participants: 1