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

2016-02-26 17:01:25 +08:00
 AlaudaCloud

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 。

影响范围

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 的使用体验会受到影响,还请大家体谅!

3696 次点击
所在节点    Docker
9 条回复
13162951900
2016-02-26 17:37:33 +08:00
好的 灵雀云
wzxjohn
2016-02-26 17:46:06 +08:00
所以说,昨天( 2 月 25 号)才开始修复各大发行版在 2 月 18 号就放出对应补丁的 Critical 漏洞,还要表扬一下?!
shyling
2016-02-26 17:49:22 +08:00
在这里要特别表扬下 Docker ,昨天 Docker 在第一时间就开始更新镜像
没看出来值得表扬的。。。只觉得 docker 不可靠←_←
VmuTargh
2016-02-26 17:53:15 +08:00
@shyling 几乎所有的主流发行版都在当天发了安全报告并且迅速修复,真看不出 docker 可靠在哪了……镜像再多几天也可以 rebuild and upgrade 掉的……
shiny
2016-02-26 17:56:30 +08:00
这年头软文创作难啊,稍微写得不用心点就会被喷。
wbsdty331
2016-02-26 18:08:55 +08:00
等等。。。
楼下告诉一下大家 今天是几号
monsoon
2016-02-26 19:09:04 +08:00
今天是 2 月 26 日 星期五。
billlee
2016-02-26 19:23:30 +08:00
去查了 docker 的 github, redhat 系是 16 日修复的, debian 系是 17 日修复的。你们不要见着风是得雨啊,弄个大新闻,再把 docker 批判一番
Halry
2016-02-26 20:21:28 +08:00
多久之前的事呀。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/259337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX