IOThunderboltFamily中的OS X内核UAF漏洞分析

###在没有获得引用的情况下,IOThunderboltFamilyUserClient在+0xE0地址通过IOServiceOpen存储了一个任务结构指针。

###通过kill这个任务,我们可以释放掉这个指针,从而为用户端留下一个挂起指针。

###IOThunderboltFamilyUserClient使用这个挂起指针来创建可读写的IOMemoryBuffers(假设它可以读写被调用进程的任务)。通过重新分配一个带有权限进程的task struct结构体,以此覆盖被释放掉的那个结构体,我们可以得到IOThunderboltFamilyUserClient来造成内存崩溃。

###你也可以利用这个bug引发内核内存崩溃。

build: clang -o thunderbolt_task_uaf thunderbolt_task_uaf.c -framework IOKit

###你应该设置gzalloc_min=1024,gzalloc_max=2048 或者类似于UAF的实际错误,否则可能会得到一些奇怪的崩溃。

###已在 MacBookAir5,2 ,OS X 10.11.5(15F34)上测试。

译者:布兜儿(看雪ID:我有亲友团)

2 个赞

fyi原帖和poc代码在这

https://bugs.chromium.org/p/project-zero/issues/detail?id=834

贵雪的翻译真是一头雾水

那你看原文肯定也是一头雾水。

要是能理解了精髓,10.1.X的越狱就是你放出来的了。

我的意思是没有代码想试试,看看原来poc的新手一头雾水啊。有原始代码链接就方便很多。