GNU bashの脆弱性の深刻さが明らかになってきています。
深刻さにおいては、先日発見されたOpenSSLのHeartbleed問題よりも深刻なのではないかと観測が出始めています。
手元にあるもっとも古いOS X、Mac OS X 10.5 Leopardでも問題の存在を確認しました。
まず稼働環境の確認。
osx105:bash-fix foo$ uname -a Darwin osx105.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh osx105:bash-fix foo$ sw_vers ProductName: Mac OS X ProductVersion: 10.5.8 BuildVersion: 9L31a
PowerPC上で動いているMac OS X 10.5 Leopardです。
次に脆弱性の確認。
osx105:bash-fix foo$ env x='() { :;}; echo vulnerable' bash -c "echo hello" vulnerable hello
Leopardでも問題が存在しました。
脆弱性の修正については、Appleちゃんねるさんで紹介されていた『OS XのBashで脆弱性CVE-2014-6271を修正する方法。』がそのまま使えました。(Xcodeについては付属DVDのものを予めインストール済み)
修正後の動作確認。
osx105:bash-92 foo$ env x='() { :;}; echo vulnerable' bash -c "echo hello" bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' hello
無事解決できたようです。
とはいえ、まだ正式のパッチではないようなので、今後も注意深くウォッチする必要がありそうです。