首页
社区
课程
招聘
[翻译]launchd中虚拟磁盘挂载尺寸分配问题导致UAF
发表于: 2017-1-10 19:39 4284

[翻译]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期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//