漏洞描述
漏洞编号:CVE-2017-6074
漏洞危害:通过非特权进程获得内核代码执行进而提升权限
漏洞发现者:Andrey Konovalov
影响范围:Linux内核版本>2.6.18(2006年9月)。
但DCCP(数据报拥塞控制协议)最早是在05年10月的Linux内核版本2.6.14中支持的。
目前该漏洞与2017年2月17修复。
漏洞概述
Linux内核近日又曝出权限提升漏洞,该漏洞可追溯至2005年,漏洞影响Linux操作系统主要发行版本,包括Redhat、Debian、OpenSUSE和Ubuntu。
安全研究员Andrey Konovalov最近用Syzkaller fuzzing工具,发现了数据报拥塞控制协议(DCCP)实现中的Linux内核漏洞,漏洞潜伏时间超过10年。
DCCP协议
DCCP协议是面向消息的传输层协议,可最小化数据包报头带来的开销和终端处理的工程量。该协议可建立、维护和拆卸不可靠连接的数据流以及对不可靠数据流进行拥塞控制。
漏洞详情
该DCCP双重释放漏洞可允许本地低权限用户修改Linux内核内存,导致拒绝服务(系统崩溃),或者提升权限,获得系统的管理访问权限。
在当前的DCCP实现中,如果dccpv6connrequest成功返回,就会通过kfreeskb in dccprcvstateprocess针对DCCPPKT_REQUEST包强制释放一个skb。
但是,如果套接字中设置了IPV6RECVPKTINFO,该skb的地址会被保存至ireq->pktopts,这个skb的引用数是在dccpv6connrequest增加,所以这个skb仍在使用中。
不过,这个skb还是会在dccprstate_process中被释放。
攻击者使用某些内核堆喷射技术就能控制任意对象,并用任意数据重写其内容。
如果重写过的对象中包含任何可触发的函数指针,攻击者便可在该内核中执行任意代码。
这个漏洞并不是远程代码执行漏洞,所以攻击者必须拥有系统本地账户,才能利用该漏洞。
两个月前,Linux内核也曝出了类似的提权漏洞CVE-2016-8655,该漏洞可以追溯到2011年,低权限本地用户利用Linux内核af_packet实现中的竞争条件,可获得root权限。
(漏洞详情:http://www.freebuf.com/vuls/122152.html)
修复方案
手动修复:调用consumeskb,而非直接goto discard并调用kfreeskb。
更详细的修复方案请点击下方链接:
如果你是高级Linux用户,那么可以应用补丁,重新构建内核,或者等待发行商发布更新。
Linux各发行版本对于该漏洞相关信息
*参考来源:freebuf,安全客,如需转载请标注转载地址。
欢迎大家关注悬镜安全实验室公众号,最新安全动态,技术干货,悬镜使用攻略。在使用悬镜服务器卫士的过程中,如遇到任何问题,都可以加入我们的官方用户群【539903443】进行咨询,我们都会有专门的人员帮您解答。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...