Debian、Red Hat 以及更多其它 Linux 發(fā)行版,只要 glibc 版本大于 2.9 就會(huì)受到影響,可直接批量獲取大量主機(jī)權(quán)限。
Google 的安全研究團(tuán)隊(duì)近日披露了glibc getaddrinfo 溢出漏洞。
漏洞的詳細(xì)發(fā)現(xiàn)過(guò)程可以參見(jiàn)Google的博客 。(題外話,google 的工程師都真牛)
漏洞描述:
漏洞成因在于DNS Server Response返回過(guò)量的(2048 ) 字節(jié), 導(dǎo)致接下來(lái)的response 觸發(fā)棧溢出。
The vulnerability relies on an oversized (2048 bytes) UDP or TCP response, which is followed by another response that will overwrite the stack.
影響范圍:
所有Debian 系列、Red Hat 系列的Linux 發(fā)行版,只要glibc 版本大于2.9 就會(huì)受到影響。
目前Google 已提供了POC,據(jù)Google 博客中所述,該漏洞應(yīng)該是可以繞過(guò)內(nèi)存防護(hù)技術(shù),從而形成代碼執(zhí)行漏洞。
POC 使用測(cè)試
POC 地址:github.com/fjserna/CVE-2015-7547
我在自己的本地 lubuntu 上進(jìn)行測(cè)試,libc 版本為 2.19。lubuntu系列也屬于Debian 的一個(gè)發(fā)行版,故理論上滿足漏洞條件。
測(cè)試過(guò)程如下:
根據(jù)漏洞描述,我們可以做一個(gè)假的DNS Server 作為中間人,來(lái)驗(yàn)證該漏洞。
更改DNS 解析為 127.0.0.1,刷新DNS 緩存 sudo /etc/init.d/nscd restart
執(zhí)行 CVE-2015-7547-poc.py , 注意無(wú)需更改 ip_addr 。
編譯 CVE-2015-7547-client.c , 執(zhí)行CVE-2015-7547-client
若含有漏洞,會(huì)造成Segmentation Fault。
由于gilbc 2.9 是在2008年發(fā)行的,所以大量Linux 系統(tǒng)都會(huì)受到該漏洞影響。若一旦繞過(guò)內(nèi)存防護(hù)技術(shù),則該漏洞可以成為一大殺器。被劫持的DNS server進(jìn)行中間人攻擊,可直接批量獲取大量主機(jī)權(quán)限。
修復(fù)方案:
1) 打patch