違法網站請勿向我司工作人員發起任何形式的人工服務請求,嚴禁利用鴻茂傳媒技術支持服務與產品從事任何非法活動,如有發現不再提供任何技術支持。×

緊急:ghost cve-2015-0235漏洞及緊急修複方法

關於該漏洞

安全研究人員近日曝出一個名為幽靈(ghost)的嚴重安全漏洞,這個漏洞可以允許攻擊者遠程獲取作業系統的最高控制權限,影響市面上大量linux作業系統及其發行版。該漏洞cve編號為cve-2015-0235。

什麼是glibc

glibc是gnu發布的libc庫,即c運行庫。glibc是linux系統中最底層的api,幾乎其它任何運行庫都會依賴於glibc。glibc除了封裝linux作業系統所提供的系統服務外,它本身也提供了許多其它一些必要功能服務的實現。glibc囊括了幾乎所有的unix通行的標準。

漏洞概述

代碼審計公司qualys的研究人員在glibc庫中的__nss_hostname_digits_dots()函數中發現了一個緩衝區溢出的漏洞,這個bug可以經過gethostbyname*()函數被本地或者遠程的觸發。

應用程式主要使用gethostbyname*()函數發起dns請求,這個函數會將主機名稱轉換為ip地址。

影響範圍

該漏洞影響glibc庫版本2.2-2.17的linux作業系統

作業系統類型包括

centos 6& 7

debian 7

red hat enterprise linux 6& 7

ubuntu 10.04& 12.04

各linux發行版

漏洞測試

1、將以下代碼文件保存為文件,文件名為ghost.c(注意嚴格區分字母大小寫)。

#include

#include

#include

#include

#include

#include

#define canary" in_the_coal_mine"

struct {

char buffer[1024];

char canary[sizeof(canary)];

} temp = {"buffer", canary};

int main(void) {

struct hostent resbuf;

struct hostent *result;

int herrno;

int retval;

/** * strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/

size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;

char name[sizeof(temp.buffer)];

memset(name,' 0', len);

name[len] ='';

retval = gethostbyname_r(name,& resbuf, temp.buffer, sizeof(temp.buffer),& result,& herrno);

if (strcmp(temp.canary, canary) != 0){

puts("vulnerable");

exit(exit_success);

}

if (retval == erange) {

puts("not vulnerable");

exit(exit_success);

}

puts("should not happen");

exit(exit_failure);

}

2、執行以下命令,檢測是否存在漏洞

gcc ghost.c -o ghost

./ ghost

'紧急:GHOST

修複方案

執行glibc升級命令

rh、fedora、centos系統

yum install glibc&& reboot

debian、ubuntu系統

apt-get clean&& apt-get update&& apt-get upgrade

小貼士:update之後,要重啟依賴glibc的進程。

© 網站版權與免責聲明

1、【鴻茂傳媒】獨立擁有本網站相關網頁內所有資料的版權;

2、未經【鴻茂傳媒】的明確書面許可,任何人不得對其進行複製;

3、本網站未註明【鴻茂傳媒】的文章,均來源於網絡,僅供大家學習與參考;

4、如有侵權/違規/不妥請聯繫客服qq或郵箱刪除,敬請諒解;

5、【鴻茂傳媒】保留隨時更正、修改、更新本聲明的權利。法律申明

服務需求留言板
*緊急問題聯繫客服
提交
提交需求
工作日: 8:30 - 22:00 在線qq客服

掃碼諮詢微信客服

鴻茂傳媒企業居間
頂部