Linux Glibc库严重安全漏洞检测与修复方案

2015年1月27日 Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235。黑客可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及 Shell 权限,此漏洞触发途径多,影响范围大,已确认被成功利用的软件及系统:Glibc 2.2到2.17 (包含2.2和2.17版本)。

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

漏洞检测方法

按照说明操作即可:

#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);
}

将上述代码内容保存为GHOST.c,执行:

gcc GHOST.c -o GHOST

$./GHOST
vulnerable   //表示存在漏洞,需要进行修复。

$./GHOST
notvulnerable //表示修复成功。

建议修补方案

特别提示:由于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*

Aliyun linux 5u7

wget -O /etc/yum.repos.d/aliyun-5.repo http://mirrors.aliyun.com/repo/aliyun-5.repo
yum update glibc
时间: 2024-10-04 15:42:48

Linux Glibc库严重安全漏洞检测与修复方案的相关文章

关于阿里云ECS Centos 5/6/7 Linux Glibc库严重安全漏洞修复方法

日前Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235.黑客可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及Shell权限,此漏洞触发途径多,影响范围大,请大家关注和及时临时修复.关于阿里云ECS Linux Glibc库严重安全漏洞修复方法.Centos 5/6/7:连接终端,或者putty登录首先检测目前的版本输入命令: rpm -qa | grep glibc 我的显示:glibc-

[分享]Linux Glibc库严重安全漏洞修复通知 (重要)

尊敬的阿里云ECS用户: 您好,日前Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235.黑客可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及Shell权限,此漏洞触发途径多,影响范围大,请大家关注和及时临时修复,后续我们会尽快更新镜像修复.请知晓. 一.    漏洞发布日期 2015年1月27日 二.    已确认被成功利用的软件及系统 Glibc 2.2到2.17 (包含2.2和2.17

Linux Glibc库严重安全漏洞修复方案通知(腾讯开发者社区)

如何查看当前glibc的版本号? rpm -aq | grep glibc 尊敬的用户: 您好!2015年1月28日, 腾讯云安全情报监测到LinuxGlibc库存在一处严重安全漏洞,可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及Shell权限,漏洞详细点击这里查看. [影响版本]: Glibc2.2 ~ Glibc 2.18 [修复方案]:       1.通过官方渠道自助下载更新,升级到Glibc 2.19及其以上版本.官方已在Glibc 2.19及以上版本

Web漏洞检测及修复方案

1. 注入漏洞 1.1 SQL注入漏洞 1.2 XSS漏洞 1.3 命令注入漏洞 1.4 HTTP响应头注入漏洞 1.5 跳转漏洞 1.6 XML注入漏洞 2. 信息泄漏漏洞 2.1 PHPInfo()信息泄漏漏洞 2.2 测试页面泄漏在外网漏洞 2.3 备份文件泄漏在外网漏洞 2.4 版本管理工具文件信息泄漏漏洞 2.5 HTTP认证泄漏漏洞 2.6 管理后台泄漏漏洞 2.7 泄漏员工电子邮箱漏洞以及分机号码 2.8 错误详情泄漏漏洞 3. 请求伪造漏洞 3.1 CSRF漏洞 3.2 JSON

Linux Glibc库安全漏洞修检测

1. 代码编辑 #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 = { "bu

Git任意代码执行漏洞检测与修复(CVE-2018-11235)

检测漏洞方法 检测漏洞有两种方法: 1.通过查看git客户端版本 git --version 如果版本低于2.13.7肯定存在漏洞如果版本高于2.13.7请比对下面的版本 版本2.13.x,小于2.13.7则存在漏洞版本2.14.x ,小于 2.14.4则存在漏洞版本2.15.x,小于 2.15.2则存在漏洞版本2.16.x,小于 2.16.4则存在漏洞版本2.17.x,小于 2.17.1则存在漏洞 2.通过git命令检测 cd /tmp git init test && cd test

Linux Glibc幽灵漏洞紧急修补方案【转】

转自:http://blog.csdn.net/chen19870707/article/details/43560823 幽灵漏洞是Linux glibc库上出现的一个严重的安全问题,他可以让攻击者在不了解系统的任何情况下远程获取操作系统的控制权限.目前他的CVE编号为CVE-2015-0235. 什么是glibc glibc是GNU发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统

Linux Glibc幽灵漏洞紧急修补方案

推荐:10年技术力作:<高性能Linux服务器构建实战Ⅱ>全网发行,附试读章节和全书实例源码下载! 幽灵漏洞是Linux glibc库上出现的一个严重的安全问题,他可以让攻击者在不了解系统的任何情况下远程获取操作系统的控制权限.目前他的CVE编号为CVE-2015-0235. 什么是glibc glibc是GNU发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了

水平权限漏洞的修复方案

水平权限漏洞一般出现在一个用户对象关联多个其他对象(订单.地址等).并且要实现对关联对象的CRUD的时候.开发容易习惯性的在生成CRUD表单(或AJAX请求)的时候根据认证过的用户身份来找出其有权限的被操作对象id,提供入口,然后让用户提交请求,并根据这个id来操作相关对象.在处理CRUD请求时,往往默认只有有权限的用户才能得到入口,进而才能操作相关对象,因此就不再校验权限了.可悲剧的是大多数对象的ID都被设置为自增整型,所以攻击者只要对相关id加1.减1.直至遍历,就可以操作其他用户所关联的对