Cygwin のBash 脆弱性 Shellshock への対応

Bash脆弱性のキャッチ
アクセス解析の検索クエリで「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

タイのバンコクでプログラミングしてます。嫁と猫がいつも一緒です。週末にはビーチに行って海をみてます。生涯現役の技術者を目指して、色々と調べてブログにかいてます