首页
社区
课程
招聘
CVE-2014-0038内核漏洞exp分析
发表于: 2025-7-14 18:46 3378

CVE-2014-0038内核漏洞exp分析

2025-7-14 18:46
3378

10多年前的漏洞,同事找我讨论,随手点开几篇分析文档,都只解释了大体思路,看完之后,对一些关键的地方,还是一知半解,所以我把自己的分析,也记录下来。


漏洞代码

漏洞在于,timeout指针从用户态传入,而__sys_recvmmsg()函数,直接修改了它指向的内容:

这样一来,exp程序如果传入内核函数指针的地址,就可以修改内核函数指针的指向。


利用程序


利用思路:

(1) 触发漏洞,修改net_sysctl_root.permissions,使它指向用户空间,使得exp程序,可以进一步控制它的执行内容:

permissions偏移ctl_table_root结构体96字节,初始值指向net_ctl_permissions()函数


exp程序的注释解释了,选择net_sysctl_root.permissions,是因为它上方有16个'\0'字节

执行objdump,查看内核文件.data节区中,net_sysctl_root上方的内容,就可以认证这一点,通常由于结构体对齐填充了0,或者编译器安排了值为0的变量在它上方:


这样一来,将上图标红的0xff字节所在地址0xffffffff81cdf496+7(图中按大端字节序书写),作为timeout地址传给__sys_recvmmsg(),就可以使timeout->tv_sec = 0xff(标红的8字节),timeout->tv_nsec = 0(更上方的8字节):


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-7-14 18:56 被jmpcall编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 42
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
能私聊吗
2025-7-20 15:55
0
游客
登录 | 注册 方可回帖
返回