看雪论坛
发新帖

[翻译]launchd中虚拟磁盘挂载尺寸分配问题导致UAF

ksmokee 2017-1-10 19:39 1056


2016年 八月二十二日 星期一
launchd进程在0x10000420D(10.11.6)处的function自动生成MIG代码, msgh_id 437是由其解析而来。

虽然此mig方法采用了out-of-line-ports描述符,但是这个代码并没有校验request_fdsCnt是否等于实际描述符的大小,而且它使用了不受信任的方法去调用mig_deallocate来回收内存。

我们可以在它们运行过程中,通过传递一个较大的值来让后续页面被销毁。

这个bug可以在OS X / iOS中任意的沙箱发生。

如果想要真正的看到这个崩溃,首先你要在一个循环中跑这个POC,然后做一些会导致很多launchd流量的事,比如:
在一个终端:while true; do ./legacy_ipc; done
在另一个终端:while true; do /Applications/Safari.app/Contents/MacOS/Safari&sleep 0.4 && killall Safari; done

测试是基于MacBookAir5,2上的OS X 10.11.6(15G31)进行。
上传的附件:
本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (0)
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 知道创宇带宽支持 | 微信公众号:ikanxue
Time: 0.011, SQL: 9 / 京ICP备10040895号-17