Linux Glibc库爆严重安全漏洞


        日前Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235。黑客可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及Shell权限,此漏洞触发途径多,影响范围大,请大家关注和及时临时修复.

一、漏洞发布日期 

2015年1月27日

二、已确认被成功利用的软件及系统  

Glibc 2.2到2.17 (包含2.2和2.17版本)  

三、    漏洞描述  

GNU glibc标准库的gethostbyname 函数爆出缓冲区溢出漏洞,漏洞编号:CVE-2015-0235。 Glibc 是提供系统调用和基本函数的 C 库,比如open, malloc, printf等等。所有动态连接的程序都要用到Glibc。远程攻击者可以利用这个漏洞执行任意代码并提升运行应用程序的用户的权限。  

四、    漏洞检测方法  

请自行检测:  

[[test]]  
$ cat > GHOST.c << EOF  
#include <netdb.h>  
#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
#include <errno.h>  
#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] = '\0';  
  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("notvulnerable");  
    exit(EXIT_SUCCESS);  
  }  
  puts("should nothappen");  
  exit(EXIT_FAILURE);  
}  
EOF  
[test]  
$ gcc GHOST.c -o GHOST  
[test]  
$./GHOST  
vulnerable

五、    建议修补方案  
特别提示:由于glibc属于Linux系统基础组件,为了避免修补对您服务器造成影响,建议您选择合适时间进行修复,同时务必在修复前通过快照操作进行备份,如果修复出现问题,可以迅速回滚快照恢复。 
  
Centos 5/6/7: 

yum update glibc

Ubuntu 12/14 :

apt-get update
 
apt-get install libc6

Debian 6 :

wget -O /etc/apt/sources.list.d/debian6-lts.list 
http://mirrors.aliyun.com/repo/debian6-lts.list
 
apt-get update 
apt-get install libc6

Debian 7 

apt-get update
 
apt-get install libc6

Opensuse 13 

zypper refresh
 
zypper update glibc*
上一篇 下一篇

评论



分享

我的公众号

恩波的公众号

最新加入

最新评论

dreamer: 求邀请码1079623171@qq.com 查看原文 06月20日 09:03
恩波: 时隔2年多了,目前微信卡券估计已经变了好多了,不好意思啊 查看原文 06月01日 15:33
lwj: 你好,我刚看了你发的这个帖子,不知道现在评论是否能看到。我现在在做这个功能,可以用。但我这还有个需求就是,可以推送多张,我在cardList里,把需要推送的卡券,都添加上了,微信端页面也显示正确,有个领取按钮,但可以领取多次,每次卡包里多一张,而且这张是列表上的第一张 。。请问,你有没有遇到过 推送多张的情况 查看原文 05月15日 14:29
roly: 另外添加卡券接口的参数cardId: "xxxxxxxxxxxxxxxxxxxxxx", cardExt: '{"timestamp":"1426222398","signature":"fdd892770eb681e925f92acb9015c75107b2227a"}' 是通过自己服务获取以上参数 还是用js在html5页面直接生产签名参数? 查看原文 05月12日 16:41
roly: 您好,请问怎么查询当前用户卡券是否领取状态? 查看原文 05月12日 16:20

赞助商