漏洞編號(hào)
CVE-2017-6074
漏洞概述
Linux內(nèi)核近日又曝出權(quán)限提升漏洞,該漏洞可追溯至2005年,漏洞影響Linux操作系統(tǒng)主要發(fā)行版本,包括Redhat、Debian、OpenSUSE和Ubuntu。利用該漏洞,攻擊者可以從低權(quán)限進(jìn)程中進(jìn)行內(nèi)核代碼執(zhí)行。目前已知受影響的最老版本是2.6.18(2006年9月),不過(guò)該漏洞可能在先前的版本中已經(jīng)存在,或許從支持DCCP開(kāi)始(2005年10月的2.6.14)就已經(jīng)存在問(wèn)題了。
在Seclists.org發(fā)布該漏洞的作者Andrey Konovalov表示,很快就會(huì)放出PoC,在此期間給予修復(fù)時(shí)間。
安全研究員Andrey Konovalov最近用Syzkaller fuzzing工具,發(fā)現(xiàn)了數(shù)據(jù)報(bào)擁塞控制協(xié)議(DCCP)實(shí)現(xiàn)中的Linux內(nèi)核漏洞,漏洞潛伏時(shí)間超過(guò)10年。
DCCP協(xié)議
DCCP協(xié)議是面向消息的傳輸層協(xié)議,可最小化數(shù)據(jù)包報(bào)頭帶來(lái)的開(kāi)銷(xiāo)和終端處理的工程量。該協(xié)議可建立、維護(hù)和拆卸不可靠連接的數(shù)據(jù)流以及對(duì)不可靠數(shù)據(jù)流進(jìn)行擁塞控制。
漏洞詳情
這個(gè)漏洞是一個(gè)使用后釋放漏洞,具體而言,就是“套接字中設(shè)置了IPV6_RECVPKTINFO 選項(xiàng)時(shí),Linux內(nèi)核的DCCP協(xié)議實(shí)現(xiàn)針對(duì)DCCP_PKT_REQUEST包釋放SKB(套接字緩沖區(qū))資源。”(“DCCP protocol implementation freed SKB (socket buffer) resources for a DCCP_PKT_REQUEST packet when the IPV6_RECVPKTINFO option is set on the socket.”)
該DCCP雙重釋放漏洞可允許本地低權(quán)限用戶修改Linux內(nèi)核內(nèi)存,導(dǎo)致拒絕服務(wù)(系統(tǒng)崩潰),或者提升權(quán)限,獲得系統(tǒng)的管理訪問(wèn)權(quán)限。
在當(dāng)前的DCCP實(shí)現(xiàn)中,如果dccp_v6_conn_request成功返回,就會(huì)通過(guò)__kfree_skb in dccp_rcv_state_process針對(duì)DCCP_PKT_REQUEST包強(qiáng)制釋放一個(gè)skb。
但是,如果套接字中設(shè)置了IPV6_RECVPKTINFO,該skb的地址會(huì)被保存至ireq->pktopts,這個(gè)skb的引用數(shù)是在dccp_v6_conn_request增加,所以這個(gè)skb仍在使用中。不過(guò),這個(gè)skb還是會(huì)在dccp_rcv_state_process中被釋放。
攻擊者使用某些內(nèi)核堆噴射技術(shù)就能控制任意對(duì)象,并用任意數(shù)據(jù)重寫(xiě)其內(nèi)容。如果重寫(xiě)過(guò)的對(duì)象中包含任何可觸發(fā)的函數(shù)指針,攻擊者便可在該內(nèi)核中執(zhí)行任意代碼。
這個(gè)漏洞并不是遠(yuǎn)程代碼執(zhí)行漏洞,所以攻擊者必須擁有系統(tǒng)本地賬戶,才能利用該漏洞。
兩個(gè)月前,Linux內(nèi)核也曝出了類(lèi)似的提權(quán)漏洞CVE-2016-8655,該漏洞可以追溯到2011年,低權(quán)限本地用戶利用Linux內(nèi)核af_packet實(shí)現(xiàn)中的競(jìng)爭(zhēng)條件,可獲得root權(quán)限(漏洞詳情:http://www.freebuf.com/vuls/122152.html)。
修復(fù)方案
手動(dòng)修復(fù):調(diào)用consume_skb,而非直接goto discard并調(diào)用__kfree_skb。
更詳細(xì)的修復(fù)方案請(qǐng)點(diǎn)擊這里。如果你是高級(jí)Linux用戶,那么可以應(yīng)用補(bǔ)丁,重新構(gòu)建內(nèi)核,或者等待發(fā)行商發(fā)布更新。
*參考來(lái)源:securityaffairs、thehackernews,F(xiàn)B小編kuma編譯,轉(zhuǎn)載請(qǐng)注明來(lái)自Freebuf