美文网首页我的Docker之路DockerDocker
出大事了!glibc曝出重大漏洞,你的Docker镜像还安全吗?

出大事了!glibc曝出重大漏洞,你的Docker镜像还安全吗?

作者: 灵雀云 | 来源:发表于2016-02-26 16:00 被阅读214次

2月16日,Google在博客中公布了一个关于GNU C Library (glibc)的安全漏洞,可导致GNU/Linux上的应用被攻击者劫持,进而在GNU/Linux上执行任意代码,甚至控制计算机。CVE编号为CVE-2015-7547。‌‌

glibc(GNUC Library)是GNU发布的libc库,是GNU/Linux中最底层的API,几乎其它任何运行库都会依赖于glibc。glibc除了封装Linux操作系统所提供的系统服务外,它本身也提供了许多其它必要功能服务的实现。

漏洞概述

Google的安全人员发现,glibc的DNS客户端解析器中存在基于栈的缓冲区溢出漏洞。当调用到getaddrinfo()库函数时,攻击者便可借助被劫持的域名、被劫持的DNS服务器或中间人攻击利用该漏洞,控制软件,甚至直接远程root。

小编只知道用C写的那都是很底层的东西,出漏洞了是可以直接影响到内存的

影响范围

glibc应用于众多Linux发行版本中,所以此类漏洞影响范围十分广泛。几乎所有的Linux发行版,只要glibc 版本大于2.9 就会受到影响。

漏洞详解

对于一个DNS查询来说,glibc中的_nss_dns_gethostbyname4_r()函数会通过aloca()在栈中预先分配2048字节的空间来存储DNS的应答结果。

接下来执行send-dg()和send_vc()函数时,如果response超过2048个字节,会在堆中分配一个新的缓冲区,其中所有的信息(buffer pointer, new buffer size 和response size)也会被更新。

某些情况下,栈中的缓冲区和新的堆分配会发生不匹配,尽管response会超出栈缓冲区的大小,新的堆缓冲区也被分配了,栈缓冲区依然会被用来存储DNS response,这就会造成栈缓冲区溢出。

ssh,sudo和curl等都有可能引起这个缓冲区溢出。

Google在博客中提供了POC测试(感兴趣的同学可以试一下这个漏洞到底有多大):https://github.com/fjserna/CVE-2015-7547

POC测试,即Proof of Concept,是业界流行的针对客户具体应用的验证性测试,根据用户对采用系统提出的性能要求和扩展需求的指标,在选用服务器上进行真实数据的运行。

Docker做了啥?

在这里要特别表扬下Docker,昨天Docker在第一时间就开始更新镜像,由于灵雀云镜像中心的library库是和Docker官方镜像库实时同步的,我们的工程师昨天就发现有几百个镜像更新任务在排队。目测Docker已经把官方库中所有镜像做了更新。Mesoscloud,Microsoft的镜像也都做了相关更新。

灵雀云做了啥?

灵雀云会尽快将这些镜像更新同步过来,目测今晚就能完成。大家最常用一些镜像已经优先做了同步。

灵雀云的服务器在第一时间更新了这些patch,请大家不要恐慌,放心使用灵雀云!

你应该做啥?

在这里强烈建议大家重新build自己的镜像!已经在运行的服务也停掉,重新build一下镜像,再运行!

最常用的Ubuntu镜像请使用这个版本:https://hub.alauda.cn/repos/library/ubuntu。

如果你的服务器是Ubuntu的,可以用以下方法进行更新:

http://www.ubuntu.com/usn/usn-2900-1/。

另外,由于大量镜像的更新,具有中国特色的registry mirror的使用体验会受到影响,还请大家体谅!

相关文章

网友评论

  • 42e95c7617b6:额。。。。 也就upgrade一行命令的事情

本文标题:出大事了!glibc曝出重大漏洞,你的Docker镜像还安全吗?

本文链接:https://www.haomeiwen.com/subject/mkrwkttx.html