潜伏7年的Linux内核漏洞CVE-2017-2636曝光,可本地提权

又一个古老的Linux内核漏洞被曝光!这次的漏洞可以追溯到2009年,影响的linux发行版包括Red Hat、Debian、Fedora、OpenSUSE和Ubuntu。

这个Linux漏洞编号为CVE-2017-2636,根据CVSS v3标准漏洞评分为7.8分。漏洞在Linux内核已经存在7年了,它能够让本地无权限的用户获取root权限,或者发动DoS让系统崩溃。

Positive Technologies的研究员Alexander Popov发现了存在于N_HLDC linux内核驱动的竞争条件问题。这个内核驱动负责处理高级数据链路控制(High-Level Data Link Control或简称HDLC)数据。问题导致了double-free漏洞。

Double Free其实就是同一个指针free两次。虽然一般把它叫做double free,其实只要是free一个指向堆内存的指针都有可能产生可以利用的漏洞。

“这是CVE-2017-2636的声明,该漏洞即N_HLDC (drivers/tty/n_hdlc.c) linux内核驱动中的竞争条件。这个漏洞可以用来进行本地提权。”SecList的安全公告提到。“该驱动提供HDLC串行线路规程,这是很多linux发行版中的内核模块——只要是内核设置中有CONFIG_N_HDLC=m的linux发行版。要利用这个漏洞不需要Microgate或者SyncLink硬件。当没有权限的用户打开伪终端并且调用TIOCSETD ioctl函数设置HDLC串行线路规程的时候,模块就会自动加载。”

因此未经授权的攻击者可以利用这个漏洞注入执行任意代码。

影响范围

这个漏洞影响的范围涵盖大多数主流的Linux发行版,包括Red Hat Enterprise Linux 6, 7, Fedora, SUSE, Debian和Ubuntu。

由于漏洞可以追溯至2009年7月,那些Linux设备存在漏洞长达7年了,但是根据Positive Technologies的调查,很难确定漏洞是否已经被利用过。

“漏洞非常老,所以在Linux工作站和服务器中传播广泛。”Popov说道,“要想利用漏洞,攻击者只需要没有权限的普通用户就行了。另外,攻击不需要任何特殊的硬件。”

研究人员在用syzkaller fuzzer进行系统调用测试的时候发现了这个漏洞。syzkaller fuzzer是由Google开发的代码安全审计软件。

Popov于是在2017年2月28日将漏洞细节、exp原型和补丁上报给了kernel.org。Popov称会在之后公布PoC。

修复建议

该漏洞目前已经修复,更新和漏洞详情均在3月7日公布。建议用户尽快下载安全更新。如果暂时无法安装更新,建议手动关闭n_hdlc模块。

转载来源:Reebuf

原文地址:http://www.freebuf.com/articles/system/129608.html