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

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

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

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

收藏
点赞1
打赏
分享
最新回复 (4)
雪    币: 47
活跃值: (418)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
GeneBlue 2 2019-2-25 12:11
2
0
从调试上看,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 伙伴系统那里拿到这片内存,还未验证。。。
雪    币: 270
活跃值: (234)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wule 2 2019-2-25 12:22
3
0
GeneBlue 从调试上看,ipv4 的 struct sock 在 ipv6 的slab 上错误释放,这导致 ipv4 slab 单链在后续会重复分配,也就是两个ipv4 sock会使用同一个 slab cache ...
这里怎么会重复分配,错误释放的这一次肯定是把出问题的这个socket给close了,然后引起了free操作,下一次,这块free得到的内存,还是正常被其他的socket拿去用了,为啥会存在两个ipv4 sock使用同一个slab cache?
雪    币: 47
活跃值: (418)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
GeneBlue 2 2019-2-25 12:37
4
0
wule 这里怎么会重复分配,错误释放的这一次肯定是把出问题的这个socket给close了,然后引起了free操作,下一次,这块free得到的内存,还是正常被其他的socket拿去用了,为啥会存在两个ipv4 ...
不是指这个victim object被重复分配,是指它的下一个 free object在分配时会被重复分配(之后这个slab所有free object都会会被重复分配),触发以后在持续性申请 ipv4 sock。 我从调试上看是这样的
雪    币: 270
活跃值: (234)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wule 2 2019-2-25 14:11
5
0
GeneBlue 不是指这个victim object被重复分配,是指它的下一个 free object在分配时会被重复分配(之后这个slab所有free object都会会被重复分配),触发以后在持续性申请 ipv4 ...
我好像有点明白了,如果说可以构造出来这样的case,我顺着这里再瞅瞅,,,
游客
登录 | 注册 方可回帖
返回