全国咨询热线:400-706-1825

官方微博| 企业信箱|

联系方式

中标软件有限公司

全国客服电话:400-089-1870
上海总部
电话:021-51098866
上海市番禺路1028号数娱大厦10层
北京分公司
电话:010-51659955
北京市北四环西路9号银谷大厦20层

联系我们
网站小箭头 公司新闻

中标软件提醒广大用户尽快补上glibc漏洞

2016年02月18日    浏览次数:6457次    国产操作系统中标软件

近日,开源安全研究团队披露了Glibc getaddrinfo溢出漏洞,该漏洞影响范围较大,涉及当前主要的Linux发行版,包括红帽V6/V7、CENTOSV6/V7、中标麒麟V6等产品,如果您当前使用的Linux操作系统的Glibc版本大于2.9就会受到该溢出漏洞影响。通过对安全漏洞进行分析,攻击者可以通过该漏洞直接批量获取大量主机权限。如果您使用的Linux操作系统可以由互联网直接访问,中标软件安全团队建议您尽快升级安全补丁。中标麒麟高级服务器操作系统V5系列不受此安全漏洞影响。中标软件安全团队提醒各位用户尽快进行漏洞修复,可致电我们的客户服务热线400-706-1825寻求支持。

漏洞危害

Glibc组件包含了大量标准库,这些标准库会被众多的程序调用。其中 libresolv库用来实现主机名与IP地址之间转换的功能。作为glibc包含的组件之一,nss_dns模块通过libresolv库进行DNS查询,从而实现Name Service Switch(NSS)服务。

Libresolv库中的代码在执行A/AAAA 双重DNS查询时会触发基于堆栈的缓冲区溢出漏洞。远程攻击者可以通过创建特殊的DNS响应,造成libresolv崩溃或有可能以运行库用户的身份和权限执行代码;调用函数send_dg(UDP查询)和send_vc(TCP查询)时会触发缓冲区溢出。

漏洞分析

通过对安全漏洞进行分析,glibc通过alloca函数在堆栈中保有2048字节。响应DNS查询请求的函数为_nss_dns_gethostbyname4_r,然后继续调用send_dg和send_vc两个函数。如果响应大于2048字节,就会从堆栈分配一个新的缓冲区并更新所有的信息,包括缓冲区指针、新的缓冲区大小和响应包大小。在某些情况下,这一过程会造成堆栈缓冲之间的不匹配,并会再次分配新的堆栈。最终导致堆栈缓冲将全部被用于存储DNS响应,所以该行为会导致堆栈缓冲的溢出。

验证方法

目前,Google已提供了漏洞验证工具,下载地址:https://github.com/fjserna/CVE-2015-7547

根据漏洞描述,可以伪造一个的DNS Server作为中间人,来验证该漏洞。测试过程如下:

1)更改DNS 解析为 127.0.0.1;

2)执行 CVE-2015-7547-poc.py;

3)编译 CVE-2015-7547-client.c , 然后执行CVE-2015-7547-client。

若操作系统包含此漏洞,会造成Segmentation Fault,如下图所示。

11.png

22.png

您也可以通过查询系统对应的glibc 版本确认是否存在安全隐患,只需在命令行执行(根据命令返回的版本信息确定是否大于2.9):

$ ldd --version

33.png

$ /lib64/libc.so.6

44.png

建议广大用户尽快联系您所使用的操作系统厂商获取补丁和技术支持,并且提醒管理员在修补漏洞的同时,千万不要忘记查看服务器或网站是否已经被入侵,是否存在后门文件等,尽量将损失和风险控制在可控范围内。

© 2015-2016 中标软件 版权所有中标国产操作系统 ICP证:沪ICP备14027244号-1