潜伏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模块。

本文转自d1net(转载)

目录
相关文章
|
13天前
|
Linux C语言
Linux内核队列queue.h
Linux内核队列queue.h
|
6天前
|
算法 Linux 调度
深入理解Linux内核的进程调度机制
【4月更文挑战第17天】在多任务操作系统中,进程调度是核心功能之一,它决定了处理机资源的分配。本文旨在剖析Linux操作系统内核的进程调度机制,详细讨论其调度策略、调度算法及实现原理,并探讨了其对系统性能的影响。通过分析CFS(完全公平调度器)和实时调度策略,揭示了Linux如何在保证响应速度与公平性之间取得平衡。文章还将评估最新的调度技术趋势,如容器化和云计算环境下的调度优化。
|
11天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
20 3
|
18天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
18天前
|
Ubuntu Linux
Linux查看内核版本
在Linux系统中查看内核版本有多种方法:1) 使用`uname -r`命令直接显示版本号;2) 通过`cat /proc/version`查看内核详细信息;3) 利用`dmesg | grep Linux`显示内核版本行;4) 如果支持,使用`lsb_release -a`查看发行版及内核版本。
36 6
|
21天前
|
Linux 内存技术
Linux内核读取spi-nor flash sn
Linux内核读取spi-nor flash sn
17 1
|
28天前
|
存储 网络协议 Linux
【Linux 解惑 】谈谈你对linux内核的理解
【Linux 解惑 】谈谈你对linux内核的理解
23 0
|
安全 Linux 网络安全
Linux脏牛漏洞提权复现
操作系统: Linux ( CentOS 6.5) Web服务: PHP+Apache
521 0
Linux脏牛漏洞提权复现
|
安全 测试技术 Linux