Bashの脆弱性CVE-2014-6271をOS X で修正する方法です。詳細は以下から。
昨日明らかになったBashの脆弱性「環境変数に仕込まれたコードを実行してしまうBASHの脆弱性」は既にUbuntuなどでは修正されていますが、OS X ではまだ”command line tools“にアップデートがかからないので、self
updateする方法をまとめました。
チェック方法
ターミナル.appを起動して以下の一行を実行
env x='() { :;}; echo vulnerable' bash -c "echo hello"
この状態で
vulnerable
hello
と脆弱”vulnerable”と出れば脆弱性が存在します。
HomebrewやMacPorts
HomebrewやMacPortsを使用している場合、既にアップデートされているのでそちらをお使い下さい。Homebrewの場合は
$brew update
$brew upgrade bash
でアップデートされます(/bin/bashはそのままなので注意)。
System Binaries Update
Xcode developer toolsをインストールしてある場合はAlex Blewittさんの”Bash remote vulnerability“をそのまま使用すればアップデート可能です。
$ mkdir bash-fix
$ cd bash-fix
$ curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf –
$ cd bash-92/bash-3.2
$ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0
$ cd ..
$ xcodebuild # sudoが必要な場合もあります
$ sudo cp /bin/bash /bin/bash.old
$ sudo cp /bin/sh /bin/sh.old
$ build/Release/bash –version # GNU bash, version 3.2.52(1)-release
$ build/Release/sh –version # GNU bash, version 3.2.52(1)-release
$ sudo cp build/Release/bash /bin
$ sudo cp build/Release/sh /bin
ただCVE-2014-6271のパッチは不完全”incomplete patch”でCVE-2014-7169
が出ているらしく、Appleの公式アップデートがいつになるかわからない状況なのでまだ落ち着かない様子です。
関連リンク:
・
Bash remote vulnerability – AlBlue’s Blog
・Blog: bashの脆弱性がヤバすぎる件
– x86-64.jp – くりす研
・
Bug in Bash shell creates big security hole on anything with *nix in it –
ArsTec
・
BASHの脆弱性でCGIスクリプトにアレさせてみました
– ワルブリックス
・How do I recompile Bash to avoid the remote exploit CVE-2014-6271 –
AskDiff
コメント
>ただCVE-2014-6271のパッチは不完全”incomplete patch”でCVE-2014-7169 b.hatenaが出ている
だめじゃん orz
vulnerable
hello
が出たw
でも面倒だからAppleの対応待つ……
Alex Blewittさんの手順というかhomebrewでもそうですが、/bin/bash /bin/shだけじゃなく /sbin/bash /sbin/shも更新したほうがいいでしょうね
X11も同じ問題抱えてるんだよね、これ
有益な情報有難うございます。リンク先を参照しましたが、
$ curl ttp://alblue.bandlem.com/bash32-053.patch | patch -p0
だけ抜けてますね。
とは言え、こういう記事は「わからんなら読むな!」つうことなんで、OKです。ありがとう〜
この状態で
vulnerable
hello
と脆弱”vulnerable”と出れば脆弱性が存在します。
日本語でOK
Alex Blewittさんの当該ブログ,日付そのままupdateされているので追記されたし(patch-53と,import-functionsをデフォルトでoffにするパッチの二点)