潜伏7年的Linux内核漏洞CNNVD-201703-302(CVE-2017-2636)曝光,可本地提权
发布日期:
2017-03-17
来源:
freebuf
转载地址:
http://www.freebuf.com/articles/system/129608.html

        又一个古老的Linux内核漏洞被曝光!这次的漏洞可以追溯到2009年,影响的linux发行版包括Red Hat、Debian、Fedora、OpenSUSE和Ubuntu。
        这个Linux漏洞编号为CNNVD-201703-302(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一个指向堆内存的指针都有可能产生可以利用的漏洞。
        “这是CNNVD-201703-302(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模块。