我已经看到很多有关 glibc 库中新发现的漏洞的信息,攻击者可以利用该漏洞(尽管很困难)。
这是一篇关于这个主题的(火与硫磺)文章: http://arstechnica.com/security/2016/02/extremely-severe-bug-leaves-dizzying-number-of-apps-and-devices-vulnerable/
我了解该漏洞的本质,但我不得不承认,在阅读补丁解决方案时我有点迷失。似乎需要在机器上执行几个步骤,但它说电子邮件中附加了一个“补丁”。
补丁具体在哪里?
https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html
我很抱歉,但我不是 Linux 系统工程师(aptitude 和 yum 是我的同乡)。
不幸的是,我为客户管理的一些网站主要在 Amazon Linux 上,我读到这些网站也可能受到影响 - 让我们假设它们是。
我只是想确保我保护了这些盒子,我可能有能力应用补丁,但我认为我对 glibc 邮件存档感到困惑。
任何人都可以阐明它 - 即用我们低级前端 Web 开发人员可以理解的语言来表达它吗?
我知道这是新的/不断发展的,我确信未来几天将会提供更好的文档。
提前致谢。
答案1
如果您使用任何支持良好的发行版,则不需要原始补丁本身。大多数发行版现在都已经更新了 libc,并将其推送到其存储库,您所需要做的就是使用包管理器来升级 libc。 (如果他们现在还没有这样做,请认真考虑切换发行版。)Amazon Linux 确实就是这种情况。从他们的安全公告:
[C]使用 Amazon EC2 并已修改其配置以使用非 AWS DNS 基础设施的客户应立即按照其 Linux 发行版提供的指示更新其 Linux 环境。使用 AWS DNS 基础设施的 EC2 客户不受影响,无需采取任何操作。
对于使用 Amazon Linux 且已修改其配置以使用非 AWS DNS 基础设施的 Amazon EC2 客户:
CVE-2015-7547 的修复程序已推送到 Amazon Linux AMI 存储库,严重程度评级为“严重”。在 2016 年 2 月 16 日或之后使用默认 Amazon Linux 配置启动的实例将自动包含此 CVE 所需的修复。
如果您想查看补丁,请查看diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
电子邮件中以以下内容开头的部分:
CVE-2015-7547
2016-02-15 Carlos O'Donell
[BZ #18665]
* resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Always set
*herrno_p.
(gaih_getanswer): Document functional behviour. Return tryagain
if any result is tryagain.
* resolv/res_query.c (__libc_res_nsearch): Set buffer size to zero
when freed.
* resolv/res_send.c: Add copyright text.
(__libc_res_nsend): Document that MAXPACKET is expected.
(send_vc): Document. Remove buffer reuse.
(send_dg): Document. Remove buffer reuse. Set *thisanssizp to set the
size of the buffer. Add Dprint for truncated UDP buffer.
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index a255d5e..47cfe27 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
int h_namelen = 0;
if (ancount == 0)
- return NSS_STATUS_NOTFOUND;
+ {
+ *h_errnop = HOST_NOT_FOUND;
+ return NSS_STATUS_NOTFOUND;
+ }
...