信息來(lái)源:國(guó)家互聯(lián)網(wǎng)應(yīng)急中心
近日,國(guó)家信息安全漏洞共享平臺(tái)(CNVD)收錄了GNU glibc getaddrinfo()堆棧緩沖區(qū)溢出漏洞(CNVD-2016-01100,對(duì)應(yīng)CVE-2015-7547)。攻擊者利用漏洞可通過(guò)構(gòu)建惡意dns服務(wù)或使用中間人的方法對(duì)受害者發(fā)起攻擊,對(duì)Linux終端設(shè)備構(gòu)成安全威脅。
一、漏洞情況分析
GNU glibc是一款按LGPL許可協(xié)議發(fā)布的開(kāi)源C語(yǔ)言編譯程序,是Linux操作系統(tǒng)中C庫(kù)的實(shí)現(xiàn)。
glibc中g(shù)etaddrinfo函數(shù)在處理特定dns response數(shù)據(jù)包時(shí)存在棧溢出漏洞。由于glibc通過(guò)alloca()函數(shù)在棧中為_(kāi)nss_dns_gethostbyname4_r函數(shù)2048字節(jié)的空間,用于托管DNS響應(yīng);若響應(yīng)大于2048字節(jié),程序會(huì)從堆中重新分配一個(gè)緩沖區(qū),并更新所有信息(緩沖區(qū)指針,緩沖區(qū)大小和響應(yīng)大?。?;在一定條件下,會(huì)出現(xiàn)棧緩沖區(qū)和新分配的堆內(nèi)存的錯(cuò)誤匹配,導(dǎo)致超過(guò)棧緩沖區(qū)大小的響應(yīng)仍然存儲(chǔ)在棧中,進(jìn)而發(fā)生緩沖區(qū)溢出。攻擊者利用漏洞可通過(guò)構(gòu)建惡意dns服務(wù)或使用中間人攻擊的方法對(duì)Linux主機(jī)或相關(guān)設(shè)備發(fā)起攻擊,導(dǎo)致遠(yuǎn)程代碼執(zhí)行,進(jìn)而可獲取用戶終端控制權(quán)。
CNVD對(duì)該漏洞的綜合評(píng)級(jí)為“高?!薄?
二、漏洞影響范圍
漏洞影響glibc>2.9的所有版本,glibc是Linux系統(tǒng)中最底層的API,應(yīng)用于眾多Linux發(fā)行版本中,因此該漏洞影響范圍廣泛。所有Debian 系列、Red Hat 系列的Linux 發(fā)行版,只要glibc版本大于2.9均受該漏洞影響。
三、漏洞修復(fù)建議
目前,互聯(lián)網(wǎng)上已披露針對(duì)該漏洞的利用原理分析及利用代碼。廠商暫未發(fā)布升級(jí)補(bǔ)丁修復(fù)該漏洞,CNVD建議用戶采取如下臨時(shí)措施:該漏洞存在于resolv/res_send.c文件中,當(dāng)getaddrinfo()函數(shù)被調(diào)用時(shí)會(huì)觸發(fā)該漏洞,技術(shù)人員可以通過(guò)將TCP DNS響應(yīng)的大小限制為1024字節(jié),并丟棄所有超過(guò)512字節(jié)的UDP DNS數(shù)據(jù)包來(lái)緩解該問(wèn)題。
附:參考鏈接:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-7547
https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html (補(bǔ)丁鏈接)
http://www.cnvd.org.cn/flaw/show/CNVD-2016-01100