博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
glibc CVE-2015-7547漏洞的分析和修复方法
阅读量:4199 次
发布时间:2019-05-26

本文共 2410 字,大约阅读时间需要 8 分钟。

漏洞概述

 

glibc中处理DNS查询的代码中存在栈溢出漏洞,远端攻击者可以通过回应特定构造的DNS响应数据包导致glibc相关的应用程序crash或者利用栈溢出运行任意代码。应用程序调用使用getaddrinfo 函数将会收到该漏洞的影响。

 

CVE编号

 

 

受影响的系统

 

CentOS6 所有版本
CentOS7所有版本
SUSE Linux Enterprise Server 11 SP3
SUSE Linux Enterprise Server 12
Ubuntu Server 14.04.1 LTS 32位
Ubuntu Server 14.04.1 LTS 64位
Ubuntu Server 12.04 LTS 64位
Ubuntu Server 12.04 LTS 64位(Docker)
Debian8.2 32位
Debian8.2 64位
Debian7.8 32位
Debian7.8 64位
Debian7.4 64位
CoreOS717.3.0 64位

 

如何修复该漏洞

 

腾讯云提供的基础操作系统镜像CentOS系列、Ubuntu系列、Debian系列都已修复该问题,新创建的云服务器不存在该漏洞。腾讯云提供的更新源已经提供了修改该漏洞的glibc版本,对于已经运行的云服务器可以通过手动更新glibc修复。

 

步骤一:(更新glibc版本)

 

CentOS6系列:
yum -y update glibc-2.12-1.166.el6_7.7 glibc-common-2.12-1.166.el6_7.7 glibc-devel-2.12-1.166.el6_7.7 glibc-headers-2.12-1.166.el6_7.7 glibc-static-2.12-1.166.el6_7.7 glibc-utils-2.12-1.166.el6_7.7 nscd-2.12-1.166.el6_7.7

 

Centos7系列:
yum -y update glibc-2.17-106.el7_2.4 glibc-common-2.17-106.el7_2.4 glibc-devel-2.17-106.el7_2.4 glibc-headers-2.17-106.el7_2.4 glibc-static-2.17-106.el7_2.4 glibc-utils-2.17-106.el7_2.4 nscd-2.17-106.el7_2.4

 

Ubuntu Server 14.04.1 LTS 系列:
1.修改/etc/apt/sources.list添加如下内容:
deb http://mirrors.tencentyun.com/ubuntu-security trusty-security main
2.执行apt-get update命令:
3.执行apt-get install libc6; apt-get install libc-bin命令;

 

Ubuntu Server 12.04 LTS 系列:
1.修改/etc/apt/sources.list添加如下内容:
deb http://mirrors.tencentyun.com/ubuntu-security precise-security main
2.执行apt-get update命令:
3.执行apt-get install libc6;

 

Debian6系列:
1.修改/etc/apt/sources.list添加如下内容:
deb http://mirrors.tencentyun.com/debian squeeze-lts main non-free contrib
deb http://mirrors.tencentyun.com/debian-security squeeze/updates main
2.执行apt-get update命令:
3.执行apt-get install libc6更新libc

 

Debian7系列:
1.修改/etc/apt/sources.list添加如下内容:
deb http://mirrors.tencentyun.com/debian-security wheezy/updates main
2.执行apt-get update命令:
3.执行apt-get install libc6更新libc

 

Debian8系列:
1.修改/etc/apt/sources.list添加如下内容:
deb http://mirrors.tencentyun.com/debian-security jessie/updates main
2.执行apt-get update命令:
3.执行apt-get install libc6;apt-get install libc-bin命令

 

步骤二:(重启服务)

 

由于本次漏洞为glibc的漏洞,涉及多种应用程序,最安全并且推荐的修复方法是重启系统生效。
如果你的系统无法重启,请执行如下命令查询仍然在使用老版本glibc的程序。
lsof +c0 -d DEL | awk ‘NR==1 || /libc-/ {print $2,$1,$4,$NF}’ | column -t
根据查询的结果, 识别哪些是对外提供服务的程序,重启对应的服务。

 

FAQ

 

1.使用SELINUX可以规避这个漏洞吗?
合适的SELINUX规则可以限制系统被攻破后的影响,但是由于DNS被系统很多基础服务使用,所以SELINUX并不能完全规避该漏洞,建议及时进行更新。

 

2.静态链接的可执行程序是否收到该漏洞的影响?
是的。如果二进制使用存在漏洞版本的glibc进行了静态链接,则对应的程序需要使用新版本glibc进行重新编译。

转载地址:http://umuli.baihongyu.com/

你可能感兴趣的文章
【一天一道LeetCode】#121. Best Time to Buy and Sell Stock
查看>>
【一天一道LeetCode】#122. Best Time to Buy and Sell Stock II
查看>>
【一天一道LeetCode】#125. Valid Palindrome
查看>>
【一天一道LeetCode】#231. Power of Two
查看>>
【一天一道LeetCode】#202. Happy Number
查看>>
带你深入理解STL之Vector容器
查看>>
带你深入理解STL之Deque容器
查看>>
带你深入理解STL之Stack和Queue
查看>>
带你深入理解STL之Set和Map
查看>>
Redis源码剖析--源码结构解析
查看>>
Redis源码剖析--动态字符串SDS
查看>>
Redis源码剖析--双端链表Sdlist
查看>>
Redis源码剖析--字典dict
查看>>
Redis源码剖析--跳跃表zskiplist
查看>>
Redis源码剖析--整数集合Intset
查看>>
Redis源码剖析--对象object
查看>>
Redis源码剖析--字符串t_string
查看>>
Redis源码剖析--快速列表quicklist
查看>>
Redis源码剖析--列表list
查看>>
Android开发学习 之 五、基本界面控件-4时间控件
查看>>