とりあえずテスト
$ env x='() { :;}; echo !!!!!!!!!!' bash -c 'echo hello' !!!!!!!!!! hello
無事に脆弱性が確認出来ました。
ということで、新しいBashに入れ替えます。
幸いな事にmacportsには既に対策済みのがあるようなので、macportsでちゃちゃっと入れます。
$ sudo port selfupdate $ sudo port upgrade
としたところで、port使うのが久しぶりなせいか、xcodeがどうとか言ってきました。
おそらく普段からxcode使ってる人はこんな事言われずに普通に終わるんじゃないかなぁと思います。
Warning: The Xcode Command Line Tools don't appear to be installed; most ports will likely fail to build. Warning: Install them by running `xcode-select --install'. Error: It seems you have not accepted the Xcode license; most ports will fail to build. Error: Agree to the license by opening Xcode or running `sudo xcodebuild -license'. Error: Unable to upgrade port: 1 To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets
とりあえず言われるがままに
$ xcode-select --install
したら、こんな感じのウィンドウが出てきたので、
インストールを押して数分後、インストール完了です。
それで、今度はライセンスがどうのと言っているので確認して、agreeします。
$ sudo xcodebuild -license
気をつけなくてはいけないのは、長い文章が出てきて、最後に"agree"と打たないといけません。
適当にaと打ってreturnを押してしまうと、もう一回同じコマンドを打って、長い文章を見ないといけません。
ちゃんとagreeとうちましょう。xcodeも準備が出来たみたいなので、
$ sudo port upgrade bash
これでbashもいい感じになったはずです。
$ env x='() { :;}; echo !!!!!!!!!!' bash -c 'echo hello' bash: 警告: x: ignoring function definition attempt bash: `x' の関数定義をインポート中にエラーが発生しました hello
ちゃんとエラーが出てくれるようになりました。