如何修补和保护Linux Glibc Getaddrinfo基于堆栈的缓冲区溢出零日漏洞CVE-2014-7547和CVE-2014-5229 [16/Feb/2015]
时间:2020-01-09 10:41:50 来源:igfitidea点击:
在libresolv库(glibc)执行双重A/AAAA DNS查询的方式中发现了基于堆栈的关键缓冲区溢出。
远程攻击者可能会崩溃,或者有可能执行在Linux上运行该库的代码。
如何在Linux操作系统上针对glibc getaddrinfo修补和保护服务器或者工作站?
如果GNU C库(glibc)收到特制的网络流量,则可能导致崩溃或者运行程序或者命令。
该漏洞最早由Google和Red Hat报告。
什么是GNU C库漏洞?
自2.9以来的所有glibc版本都受此错误影响。
该漏洞可能会从易受攻击的系统触发DNS查找。
基于DNS的远程执行代码漏洞可能导致严重的问题。
CVE-2014-5229导致calloc返回非零内存。
这也可以用来创建拒绝服务攻击。
最好的选择是针对CVE-2014-7547和CVE-2014-5229修补基于Linux的服务器和客户端/工作站/笔记本电脑。
受影响的Linux发行版列表
- 红帽企业Linux服务器7
- 红帽企业Linux服务器6
- CentOS Linux 7
- CentOS Linux 6
- Debian Linux 6受到挤压
- Debian Linux 7狂风
- Debian Linux 8杰西
- Ubuntu Linux 15.10
- Ubuntu Linux 14.04 LTS
- Ubuntu Linux 12.04 LTS
- SUSE Linux Enterprise Linux 11
- SUSE Linux Enterprise Linux 12
- openSUSE Leap 42.1
我的Linux系统使用哪个GNU C库(Glibc)版本?
输入以下apt-get命令:
$ ldd --version
Ubuntu Linux 14.04 LTS的示例输出:
ldd (Ubuntu EGLIBC 2.19-0ubuntu6.6) 2.19 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
修复Debian或者Ubuntu Linux上的Glibc Getaddrinfo漏洞
执行以下命令:
$ sudo apt-get update $ sudo apt-get upgrade
这是固定版本:
- Ubuntu 15.10:libc6 2.21-0ubuntu4.1
- Ubuntu 14.04 LTS:libc6 2.19-0ubuntu6.7
- Ubuntu 12.04 LTS:libc6 2.15-0ubuntu10.13
您必须重新启动依赖于glibc的服务,或者最好的选择是按照计划重新启动该框:
$ sudo reboot
修复RHEL/CentOS Linux上的Glibc Getaddrinfo漏洞
执行以下yum命令:
$ sudo yum clean all $ sudo yum update
您必须重新启动依赖于glibc的服务,或者最好的选择是按照计划重新启动该框:
$ sudo reboot
RHEL/CentOS 7用户只需运行以下命令即可避免重新引导系统:
$ sudo systemctl daemon-reexec
在SUSE Linux Enterprise上修复Glibc Getaddrinfo(和opensuse)
要使用更新的可用版本简单地更新已安装的glibc软件包,请运行:
# zypper up