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</p> <p>$./GHOST
vulnerable //表示存在漏洞,需要进行修复。</p> <p>$./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 <a href="http://mirrors.aliyun.com/repo/debian6-lts.list">http://mirrors.aliyun.com/repo/debian6-lts.list</a>
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 <a href="http://mirrors.aliyun.com/repo/aliyun-5.repo">http://mirrors.aliyun.com/repo/aliyun-5.repo</a>
yum update glibc
相关文章
linux/ubuntu系统怎么安装百度网盘? linux百度网盘安装图文教程
linux/ubuntu系统怎么安装百度网盘?linux系统中想要安装百度网盘,该怎么安装呢?下面我们就来看看linux百度网盘安装图文教程2023-06-02新补丁发布! 修复Linux 6.3 更新导致 XFS 元数据故障
在升级到 6.3.3 维护版本更新之后,基于 XFS 格式的服务器就出现不断崩溃的问题现在已经找到原因,并发布新的补丁,详细请看下文介绍2023-05-30linux如何导出文件到本地电脑? Linux命令导出文件的技巧
linux如何导出文件到本地电脑?linux系统中的文件,想要导出道本地,该怎么操作呢?下面我们就来看看Linux命令导出文件的技巧2023-05-17- 这篇文章主要介绍了Linux系统下载(超全镜像整理下载),需要的朋友可以参考下2023-05-07
深度 deepin 操作系统 20.9今日发布: Qt 版本升级至 5.15.8
深度 deepin 操作系统 20.9今日发布,这个版本的核心目标是:为用户提供稳定的系统运行版本,详细更新内容请看下文介绍2023-04-18Linux Lite 6.4今日发布:基于 Ubuntu 22.04.2 LTS/原生应用支持 Zstd
Linux Lite 6.4今日发布,引入了诸多新功能 / 新特性,升级了相关组件,并优化了性能,详细请看下文介绍2023-04-02Linux 6.3发布第4个候选版本: diffstat占比超过50%
Linux6.3第4个候选版本发布,这意味着 6.3 的开发周期已经走过了一半路程,下面我们就来看看这个版本的公告内容2023-03-27linux无法识别ntfs格式U盘怎么办? 解决linux不识别nfst格式u盘问题技巧
linux无法识别ntfs格式U盘怎么办?在Linux系统中插入ntfs格式的u盘是,无法识别,下面我们就来看看解决linux不识别nfst格式u盘问题技巧2023-02-28linux怎么调整swap大小? linux扩容swap分区的技巧
linux怎么调整swap大小?linux系统中想要扩容swap分区,该怎么操作呢?下面我们就来看看linux扩容swap分区的技巧2023-02-28深度操作系统 deepin V23 Alpha 2 正式发布 预装跨端协同功能
深度操作系统 deepin V23 Alpha 2 正式发,该版本是 V23 的阶段性版本之一,deepin V23 Alpha 2 在主打的行云设计上持续升级,同时支持系统主题高级定制化设置,详细请看下2023-02-09
最新评论