又一個古老的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模塊。