アクセス解析の検索クエリで「cygwin bash 脆弱性」があったので、cygwin 環境でのbash の脆弱性について。今回のShellshock OSコマンドインジェクション を利用した不正なプログラムも出回っているようで。
Cygwin バージョンの確認
まずはCygwin で利用している Bash のバージョンを確認。
bash --version
でもよいけど、cygwin っぽくcygcheck コマンドでバージョンを確認。
$ cygcheck -c bash Cygwin Package Information Package Version Status bash 4.1.11-2 OK
Shellshock 脆弱性の確認方法
今回の Bash 脆弱性は
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
コマンドを実行して確認。
脆弱性がない場合には、this is a test のみ表示される。脆弱性がある場合には、
vulnerable this is a test
が表示される。vulnerable があるとアウト。
CygwinとBash のアップデート
bash をアップデートするのに、apt-cyg を利用したいけど、アップデートもパッケージの削除もコマンドラインから上手くいかない。
$ apt-cyg remove bash apt-cyg cannot remove package bash, exiting
仕方なく setup.exe (setup-x86_64.exe) からパッケージを入れ直す。
Cygwin 本体のバージョンも1.7.28-2 と古かったので、最新版へ。
アップデート後のCygwin 本体のバージョン
$ cygcheck -c cygwin Cygwin Package Information Package Version Status cygwin 1.7.32-1 OK
Shell パッケージに含まれるBash を最新版へ。
$ cygcheck -c bash Cygwin Package Information Package Version Status bash 4.1.14-7 OK
ちなみにCygwin 1.7.28からだと2回アップデートしないと最新版にならなかったです。
アップデート後の脆弱性の再確認
テスト用のコマンドを実行し、正常に修正されていることを確認したら問題なし。
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" this is a test
ちなみに、Linux でyum が利用できる環境でBash をアップデートする方法です。
yum update bash
詳細は以下でまとめてます。
https://ishihara.asia/bash-の脆弱性shellshock。centos、redhat-での対処方法-yum-update-bash.html
以下のサイトにShellshockの詳細がかかれているので、めっちゃ参考になります。
bash の脆弱性 “Shell Shock” のめっちゃ細かい話 (CVE-2014-6271)
http://moro-archive.hatenablog.com/entry/2014/09/27/200553