首页
社区
课程
招聘
[讨论]CVE-2018-9568,这个洞看起来问题很大,但是就是不知道怎么用???
发表于: 2019-2-25 11:42 6351

[讨论]CVE-2018-9568,这个洞看起来问题很大,但是就是不知道怎么用???

2019-2-25 11:42
6351

对着slub allocator看了好多天,总感觉这个洞是可以被利用提权的,但是一直没有什么思路,有没有大牛有研究,大家讨论讨论


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 47
活跃值: (418)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
从调试上看,ipv4 的 struct sock 在 ipv6 的slab 上错误释放,这导致 ipv4 slab 单链在后续会重复分配,也就是两个ipv4 sock会使用同一个 slab cache,所以这里应该会有一个 double free。struct sock 是专用的 kmem_cache ,常规的的 heap spray 的方法是 refiled 不上的,我尝试 physmap spray 也一直未成功,难道是姿势不对?从一些linux大牛那里得知,struct sock 这种专用 slab 所在的内存也是可能会被重新分配给常规 slab 使用的,场景如下,释放 sock 之后,如果该 slab 所有的 object 均为空闲,那这个 slab 是会回归 buddy 伙伴系统的,常规内存申请方式(kmalloc)申请 page 时是有可能从 buddy 伙伴系统那里拿到这片内存,还未验证。。。
2019-2-25 12:11
0
雪    币: 275
活跃值: (254)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
GeneBlue 从调试上看,ipv4 的 struct sock 在 ipv6 的slab 上错误释放,这导致 ipv4 slab 单链在后续会重复分配,也就是两个ipv4 sock会使用同一个 slab cache ...
这里怎么会重复分配,错误释放的这一次肯定是把出问题的这个socket给close了,然后引起了free操作,下一次,这块free得到的内存,还是正常被其他的socket拿去用了,为啥会存在两个ipv4 sock使用同一个slab cache?
2019-2-25 12:22
0
雪    币: 47
活跃值: (418)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
wule 这里怎么会重复分配,错误释放的这一次肯定是把出问题的这个socket给close了,然后引起了free操作,下一次,这块free得到的内存,还是正常被其他的socket拿去用了,为啥会存在两个ipv4 ...
不是指这个victim object被重复分配,是指它的下一个 free object在分配时会被重复分配(之后这个slab所有free object都会会被重复分配),触发以后在持续性申请 ipv4 sock。 我从调试上看是这样的
2019-2-25 12:37
0
雪    币: 275
活跃值: (254)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
GeneBlue 不是指这个victim object被重复分配,是指它的下一个 free object在分配时会被重复分配(之后这个slab所有free object都会会被重复分配),触发以后在持续性申请 ipv4 ...
我好像有点明白了,如果说可以构造出来这样的case,我顺着这里再瞅瞅,,,
2019-2-25 14:11
0
游客
登录 | 注册 方可回帖
返回
//