受影响系统:
GNU glibc 2.0.1 – 2.11.1
不受影响系统:
GNU glibc 2.11.1-2locris1
描述:
GNU C库是Gentoo Linux系统所使用的标准C库,为程序提供系统调用的基本功能和接口。
glibc库的ld.so动态加载器在处理恶意的ELF二进制程序时存在整数溢出漏洞。相关的漏洞代码位于elf/dynamic-link.h的elf_get_dynamic_info()函数中,该函数是从elf/rtld.c(ld.so的入口点)调用的,通过如下动态链接信息迭代:
ElfW(Dyn) *dyn = l->l_ld;
ElfW(Dyn) **info;
info = l->l_info;
while (dyn->d_tag != DT_NULL)
{
if (dyn->d_tag < DT_NUM)
info[dyn->d_tag] = dyn;
…
dyn++;
}
dyn结构是直接从所处理二进制程序的ELF头读取的。d_tag成员为有符整数,因此dyn->d_tag < DT_NUM比较也为有符型。如果ELF二进制程序的该标签包含有负数索引,就可以通过检查,以当前dyn结构的地址写入任意内存位置。
<*来源:Dan Rosenberg
链接:http://frugalware.org/security/662
http://drosenbe.blogspot.com/2010/05/integer-overflow-in-ldso-cve-2010-0830.html
http://www.ubuntu.com/usn/USN-944-1
*>
建议:
厂商补丁:
Ubuntu
——
Ubuntu已经为此发布了一个安全公告(USN-944-1)以及相应补丁:
USN-944-1:glibc, eglibc vulnerabilities
链接:http://www.ubuntu.com/usn/USN-944-1
0 条评论。