ちょうど 1年ほど前に GNU C Library (glibc) にリモートコードを実行される脆弱性、CVE-2015-0235 が発見され、ちょっとした騒ぎになりました (下記記事参照)。
CVE-2015-0235 は glibc の関数 gethostbyname()
におけるバッファーオーバーフローの脆弱性 (そのため 「GHOST」 と命名された) でしたが、実際には攻撃手法が限られる点や、その時点で多くの OS がすでに gethostbyname()
を使用しておらず (IPv6 に対応しないため)、getaddrinfo()
を使用していることがほとんどだったため、glibc の普及状況からすれば影響は限定的でした。
ところが、今回はその getaddrinfo()
にバッファーオーバーフローと任意のコードを実行させられる可能性がある脆弱性 CVE-2015-7547 が発見され、こちらは結構な大騒ぎになっております。
- 関連情報としては下記
- 修正パッチはすでに提供開始済み
- ディストリビューションごとの情報
影響のある glibc のバージョン
- glibc 2.9 およびそれ以降のバージョン
下記のバージョンが影響を受けるということで、RHEL(CentOS) であれば 6系、7系が対象となります。
ちなみに上でリンクした ITmedia エンタープライズの記事などでは、当初 Android も影響を受けると書かれていましたが (先ほど見たら訂正がされていました)、Android で採用されているのは bionic C library という Google 謹製の libc ですので OS 自体は直接影響を受けません。
ということで glibc のバージョンアップ
ちなみにこの Blog をホストしているサーバも CentOS 6系ですので glibc-2.12 がインストールされており、脆弱性の対象でした。なのでとりあえずアップデートしておきました。
早速バージョン調べますが、
# yum list installed | grep glibc glibc.x86_64 2.12-1.149.el6_6.5 glibc-common.x86_64 2.12-1.149.el6_6.5 glibc-devel.x86_64 2.12-1.149.el6_6.5 glibc-headers.x86_64 2.12-1.149.el6_6.5
ということだったので、
# yum update glibc
を実行し、アップデートを行います。
実行前に少し検索したら、一部で glibc をアップデートするとタイムゾーンが変更されちゃうっていう情報があったので念のためアップデート後に確認しましたが私の環境では特に問題ありませんでした。
改めてバージョン確認。
# yum list installed | grep glibc glibc.x86_64 2.12-1.166.el6_7.7 glibc-common.x86_64 2.12-1.166.el6_7.7 glibc-devel.x86_64 2.12-1.166.el6_7.7 glibc-headers.x86_64 2.12-1.166.el6_7.7
CentOS 6 の Security Support にも投稿されているとおり、「glibc-2.12-1.166.el6_7.7」 が修正パッチ適用済みバージョンになりますので、とりあえずこれで問題なし。
glibc のアップデート後はサーバ自体の再起動が必要になりますので、一時的に Web サイトが全部落ちるの覚悟で reboot
ぶちかまします。再起動が無事完了すれば作業完了となります。
無闇に再起動できないサーバを運用されている方は大変そうですが、下記に邪道といいつつ、iptables でとりあえずの対策をする方法を公開してくれている方がいましたので紹介。