CVE-2015-7547 glibcのgetaddrinfo に stack buffer overflow の脆弱性[Linux]

このエントリーをはてなブックマークに追加


2016-02-17


久々?に大きな脆弱性が出ました。glibc2.9 以降で発現する脆弱性です。

詳細は

CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow
https://googleonlinesecurity.blogspot.jp/2016/02/cve-2015-7547-glibc-getaddrinfo-stack.html

に詳しいです。主な影響を受けるディストリビューションは下記の通り

Distribution Vuluneable
RHEL5/CentOS5 受けない
RHEL6/CentOS6 受ける
RHEL7/CentOS7 受ける
Debian squeeze 受ける
Debian wheezy 受ける
Debian jessie 受ける

この情報は下記から

CVE-2015-7547: Critical Vulnerability in glibc getaddrinfo
https://isc.sans.edu/forums/diary/CVE20157547+Critical+Vulnerability+in+glibc+getaddrinfo/20737/

getaddrinfo() を使ってる場合に、影響を受ける可能性があります。

すでに PoC は公開されていています。

https://github.com/fjserna/CVE-2015-7547

ここに公開されている CVE-2015-7547-proc.py とかを root 権限付きで実行すると、この手の buffer overflow を引き起こすパケットを返してくる DNSキャッシュサーバもどきになってくれます。

これをローカルで動かした状態で /etc/resolv.conf に

nameserver 127.0.0.1


とすると、

$ ssh www.example.jp
Segmentation fault


という感じで、落ちてくれます。

ただ、普通のDNSキャッシュサーバは、この手の malformed packet は、リゾルバには返さず SERVFAIL が返ります。
なので、影響を受ける Linux が参照している DNSキャッシュサーバが、自分が管理しているunbound だったり bind だったりする場合には、直近影響を受けないといっていいと思います。aws はその立場を取ったようです。

CVE-2015-7547 Advisory
https://aws.amazon.com/jp/security/security-bulletins/cve-2015-7547-advisory/

EC2 customers using the AWS DNS infrastructure are unaffected and don’t need to take any action.


とは言いながらも、脆弱性は残っているので、ちゃんとアップデートしておきましょう。アップデート後は、古いライブラリを読み込んだままだったということがないように、サーバを reboot しておくといいと思います。

# lsof -d DEL


して、かたっぱしから該当する daemon を再起動するってのでもいいかもしれませんが。

ちょっと不安なのは





このあたりですかね。環境によっては、偽造パケットというかたちで差し込まれたりする可能性もあるので、注意が必要です。
そういった不安がある環境で、どうしてもすぐにはアップデートできないなら dnsmasq を仕込んでこいつにリゾルバを向けて、応答を受けてもらいましょう。これも有効な workaround となります。

ps. どうでもいいですが、unbound の do-not-query-localhost が default で yes になっていることに気づかずに(というか、そもそもそういう設定があることに気づかずに)、なかなかテストができずにハマりました……



IPv4/IPv6 meter
検索キーワードは複数指定できます
ChangeLogを検索
Google
Web www.kunitake.org
思ったより安い……時もある、Amazon

カテゴリ