アクセス解析の検索クエリで「cygwin bash 脆弱性」があったので、cygwin 環境でのbash の脆弱性について。今回のShellshock OSコマンドインジェクション を利用した不正なプログラムも出回っているようで。
Cygwin バージョンの確認
まずはCygwin で利用している Bash のバージョンを確認。
1 | bash --version |
でもよいけど、cygwin っぽくcygcheck コマンドでバージョンを確認。
1 2 3 4 | $ cygcheck -c bash Cygwin Package Information Package Version Status bash 4.1.11-2 OK |
Shellshock 脆弱性の確認方法
今回の Bash 脆弱性は
1 | env x= '() { :;}; echo vulnerable' bash -c "echo this is a test" |
コマンドを実行して確認。
脆弱性がない場合には、this is a test のみ表示される。脆弱性がある場合には、
1 2 | vulnerable this is a test |
が表示される。vulnerable があるとアウト。
CygwinとBash のアップデート
bash をアップデートするのに、apt-cyg を利用したいけど、アップデートもパッケージの削除もコマンドラインから上手くいかない。
1 2 | $ apt-cyg remove bash apt-cyg cannot remove package bash , exiting |
仕方なく setup.exe (setup-x86_64.exe) からパッケージを入れ直す。
Cygwin 本体のバージョンも1.7.28-2 と古かったので、最新版へ。
アップデート後のCygwin 本体のバージョン
1 2 3 4 | $ cygcheck -c cygwin Cygwin Package Information Package Version Status cygwin 1.7.32-1 OK |
Shell パッケージに含まれるBash を最新版へ。
1 2 3 4 | $ cygcheck -c bash Cygwin Package Information Package Version Status bash 4.1.14-7 OK |
ちなみにCygwin 1.7.28からだと2回アップデートしないと最新版にならなかったです。
アップデート後の脆弱性の再確認
テスト用のコマンドを実行し、正常に修正されていることを確認したら問題なし。
1 2 | $ env x= '() { :;}; echo vulnerable' bash -c "echo this is a test" this is a test |
ちなみに、Linux でyum が利用できる環境でBash をアップデートする方法です。
1 | 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