Glibc gethostbyname()堆缓冲区溢出漏洞 (Alert2015-01)
2015-01-28
描述:
CVE ID:CVE-2015-0235受影响的软件及系统:
====================
Glibc 2.2 - 2.17
未受影响的软件及系统:
======================
Glibc 2.18
综述:
======
Glibc 2.18之前的版本中的__nss_hostname_digits_dots()函数存在一个堆缓冲区漏洞,攻击者可以利用此漏洞执行任意代码。
由于Glibc是基础的C运行库,大量应用都可能受此问题影响,建议尽快升级。
分析:
======
glibc是GNU发布的libc库,即c运行库,几乎其它任何运行库都会依赖于glibc。
glibc 2.18之前版本中,__nss_hostname_digits_dots()函数存在堆缓冲区溢出漏洞,gethostbyname()及gethostbyname2()这两个glibc函数调用时会用到该函数。如果远程攻击者可以调用这些函数中的任意一个,即可利用此漏洞以当前用户权限执行任意代码。
虽然2013年5月21日GNU官方已经修复了此漏洞(介于glibc-2.17及glibc-2.18之间的版本),但当时并未当成漏洞处理,因此很多Linux发行版并未进行升级。目前Debian 7 (wheezy), Red Hat Enterprise Linux 6 & 7, CentOS 6 & 7, Ubuntu 12.04等大多数的Linux发行版都受此问题影响。
此漏洞触发严重依赖应用程序调用gethostbyname()的方式,需要满足多个条件才能触发漏洞。目前看绝大多数的本地SUID程序和服务程序无法被利用。
目前已知受影响的应用程序为exim4邮件服务程序,如果设置了对HELO和EHELO命令进行额外安全检查(非默认配置),则可以远程执行任意代码。
不排除其他应用受此问题影响。
解决方法:
没有好的临时解决方法,建议尽快升级或按照厂商补丁。厂商状态:
==========
GNU和各大Linux发行版厂商均已修复此漏洞,请尽快进行升级:
RedHat: https://rhn.redhat.com/errata/RHSA-2015-0090.html
Ubuntu: https://launchpad.net/ubuntu/+source/eglibc
Debian: https://security-tracker.debian.org/tracker/CVE-2015-0235
GNU C Library: http://www.gnu.org/software/libc/
附加信息:
==========
1. https://www.qualys.com/research/security-advisories/GHOST-CVE-2015-0235.txt
2. http://www.nsfocus.net/index.php?act=alert&do=view&aid=153
3. https://rhn.redhat.com/errata/RHSA-2015-0090.html
4. https://security-tracker.debian.org/tracker/CVE-2015-0235