日前Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235。黑客可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及Shell权限,此漏洞触发途径多,影响范围大,请大家关注和及时临时修复,后续我们会尽快更新镜像修复。请知晓。 t2>fmQIQ
zMi; A6
一、 漏洞发布日期 P7.’kX9
2015年1月27日 pH@]Y+W
YA:nOvd@O
二、 已确认被成功利用的软件及系统 ?D`T7KSe~D
Glibc 2.2到2.17 (包含2.2和2.17版本) lpB3&H8&
pkgjTXR2b
三、 漏洞描述 LR(-<”
GNU glibc标准库的gethostbyname 函数爆出缓冲区溢出漏洞,漏洞编号:CVE-2015-0235。 Glibc 是提供系统调用和基本函数的 C 库,比如open, malloc, printf等等。所有动态连接的程序都要用到Glibc。远程攻击者可以利用这个漏洞执行任意代码并提升运行应用程序的用户的权限。 )e|=mtp
c;2#,m^
四、 漏洞检测方法 eHiy,IN
请自行检测: a^U~0i@[S
[[test]] 8s{?v&p
$ cat > GHOST.c << EOF _)T5lEFl=
#include <netdb.h> ^T::-pN*
#include <stdio.h> ‘cix`l|^
#include <stdlib.h> 06q(aI^Ch@
#include <string.h> Om;&_!i
#include <errno.h> )3Z ^h<“j
#define CANARY”in_the_coal_mine” @Fp_^5
struct { ~`MIr
char buffer[1024]; %a+mk E
char canary[sizeof(CANARY)]; ngohtB^]
} temp = { “buffer”, CANARY }; F8:vDv
int main(void) { a2’^8;U*_
struct hostent resbuf; R@/U=iqR
struct hostent *result; PYbVy<xc
int herrno; #9-P%%kQ
int retval; J &pO%Q=b
/*** strlen (name) = size_needed -sizeof (*host_addr) – sizeof (*h_addr_ptrs) – 1; ***/ (3J$>Na
size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) – 2*sizeof(char *) – 1; +LM#n#T
char name[sizeof(temp.buffer)]; p$Ox’A4
memset(name, ‘0’, len); ~cTN~<{dq
name[len] = ‘