-
-
[翻译]launchd中虚拟磁盘挂载尺寸分配问题导致UAF
-
发表于: 2017-1-10 19:39 4284
-
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)进行。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
谁下载
谁下载
看原图
赞赏
雪币:
留言: