Debian、Red Hat 以及更多其它 Linux 發行版,只要 glibc 版本大于 2.9 就會受到影響,可直接批量獲取大量主機權限。
Google 的安全研究團隊近日披露了glibc getaddrinfo 溢出漏洞。
漏洞的詳細發現過程可以參見Google的博客 。(題外話,google 的工程師都真牛)
漏洞描述:
漏洞成因在于DNS Server Response返回過量的(2048 ) 字節, 導致接下來的response 觸發棧溢出。
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 發行版,只要glibc 版本大于2.9 就會受到影響。
目前Google 已提供了POC,據Google 博客中所述,該漏洞應該是可以繞過內存防護技術,從而形成代碼執行漏洞。
POC 使用測試
POC 地址:github.com/fjserna/CVE-2015-7547
我在自己的本地 lubuntu 上進行測試,libc 版本為 2.19。lubuntu系列也屬于Debian 的一個發行版,故理論上滿足漏洞條件。
測試過程如下:
根據漏洞描述,我們可以做一個假的DNS Server 作為中間人,來驗證該漏洞。
更改DNS 解析為 127.0.0.1,刷新DNS 緩存 sudo /etc/init.d/nscd restart
執行 CVE-2015-7547-poc.py , 注意無需更改 ip_addr 。
編譯 CVE-2015-7547-client.c , 執行CVE-2015-7547-client
若含有漏洞,會造成Segmentation Fault。

由于gilbc 2.9 是在2008年發行的,所以大量Linux 系統都會受到該漏洞影響。若一旦繞過內存防護技術,則該漏洞可以成為一大殺器。被劫持的DNS server進行中間人攻擊,可直接批量獲取大量主機權限。
修復方案:
1) 打patch


