标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-923]   作者: 凡诺 发表于: [2017-10-26]

本文共 [563] 位读者顶过

    Linux内核的音频子系统存在一个条件竞争漏洞CVE-2017-15265(CNVD-2017-30251CNNVD-201710-230),条件竞争导致了use-after-free漏洞,可以用来进行本地提权。由于绝大部分Linux发行版采用了这个子系统,所以内核版本低于4.14-rc5的系统均会受到此漏洞影响,其影响范围十分广泛。

    普通用户运行在用户空间,用户空间的权限有限,如果需要其他操作就需要通过一些接口进入内核空间。内核空间权限比较大,如果内核空间的代码有漏洞可进行代码执行的话,就会造成普通用户以内核权限执行代码进行提权。用户空间进入内核空间的接口有很多,如syscall、proc、sysfs、netlink、mmap、信号、驱动文件等等,这里音频子系统是通过驱动文件的方式与用户空间进行交互的。[出自:jiwo.org]

Linux驱动程序一般会在/dev目录下创建一些文件,用户可以打开这些文件,通过ioctl函数与内核进行交互。其中,音频子系统创建的文件在/dev/snd目录下,Seq文件是此漏洞关注的目标

    漏洞触发的具体过程如下:

    1、在第一个线程中,snd_seq_ioctl_create_port() 调用snd_seq_create_port()创建了port这个结构体,然后切换到第二个线程;

    2、第二个线程调用snd_seq_ioctl_delete_port()释放了第一个线程创建的port后,再切换回第一个线程;

    3、由于port没有锁也没有引用计数,所以第一个线程中的snd_seq_ioctl_create_port()继续使用了第二个线程中已释放的port,这样就造成了use-after-free漏洞。

    修改方法:

    目前,Linux官方已给出修复方案,该方案采用了为port结构体增加引用计数的方式,参考链接为:http://mailman.alsa-project.org/pipermail/alsa-devel/2017-October/126292.html






评论

暂无
发表评论
 返回顶部 
热度(563)
 关注微信