设为首页收藏本站

亚洲数据论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1324|回复: 0

【资源】 紧急: GHOST CVE-2015-0235漏洞及紧急修复方法

[复制链接]

577

主题

765

帖子

15

精华

Rank: 7Rank: 7Rank: 7

积分
3869
1869 枚
0 枚
2 枚
发表于 2015-2-1 16:54:11 | 显示全部楼层 |阅读模式
本帖最后由 勇敢的心 于 2015-2-1 16:55 编辑

关于该漏洞


安全研究人员近日曝出一个名为幽灵(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(注意严格区分字母大小写)。


  1. #include <netdb.h>

  2. #include <stdio.h>

  3. #include <stdlib.h>

  4. #include <string.h>

  5. #include <errno.h>

  6. #include <gnu/libc-version.h>

  7. #define CANARY "in_the_coal_mine"

  8. struct {

  9. char buffer[1024];

  10. char canary[sizeof(CANARY)];

  11. } temp = { "buffer", CANARY };

  12. int main(void) {

  13. struct hostent resbuf;

  14. struct hostent *result;

  15. int herrno;

  16. int retval;

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

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

  19. char name[sizeof(temp.buffer)];

  20. memset(name, '0', len);

  21. name[len] = '\0';

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

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

  24. puts("vulnerable");

  25. exit(EXIT_SUCCESS);

  26. }

  27. if (retval == ERANGE) {

  28. puts("not vulnerable");

  29. exit(EXIT_SUCCESS);

  30. }

  31. puts("should not happen");

  32. exit(EXIT_FAILURE);

  33. }
复制代码

2、执行以下命令,检测是否存在漏洞


  1. gcc GHOST.c -o GHOST

  2. ./GHOST
复制代码

修复方案


执行glibc升级命令


RH、Fedora、CentOS系统


  1. yum install glibc && reboot
复制代码

Debian、Ubuntu系统


  1. apt-get clean && apt-get update && apt-get upgrade
复制代码

update之后,需要重启依赖glibc的进程。




亚洲数据论坛 - 作者版权声明分割线

Respect for the original creation of the hard, the author of : FreeBuf  In this thanks!





是失败让我乐观;
是快乐让我冷静.
因为我有一颗和你一样勇敢的心!
支持支持 高兴高兴 淡定淡定 惊呆了惊呆了 给力给力 回帖回帖 生气生气 感谢感谢 路过路过
自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|站点地图|亚洲数据论坛   

GMT+8, 2017-11-22 20:34

©2009-Infinity  Data Forum Asia

快速回复 返回顶部 返回列表