2014年09月25日

bashの環境変数に関する脆弱性

スラッシュドットにbashの環境変数に関する脆弱性の記事がありました。
GNU Bashに重大な脆弱性、環境変数を渡して呼ぶことで任意コード実行が可能に

個人で使っているサーバーでは、CGIは使っていなかったはずですが、念のため確認してみました。
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

すると見事に脆弱性ありでした。
そこで、bashのバージョンを確認してみました。

$ bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

OSはCentOSなので、yumで新しいバージョンが出ていないか確認することにしました。
すると、以下のように新しいバージョンがあるということで、アップデートしました。
# yum list bash
・・・
Installed Packages
bash.x86_64 4.1.2-9.el6_2 @updates/6.2
Available Packages
bash.x86_64 4.1.2-15.el6_5.1 updates
・・・

# yum update bash
・・・


再度脆弱性のテストをすると以下のようになりました。
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test


これは修正済みで良いのでしょうか? この週末に調べておこうと思います。