Mac OS Xのbashに1行でShellShock(CVE-2014-6271 & CVE-2014-7169)脆弱性のパッチを当てる方法。

シェアする

スポンサーリンク

 Mac OS XのbashにShellShock(CVE-2014-6271, CVE-2014-7169)パッチを当てる方法です。詳細は以下から。

 NBCに「Appleも”bashと呼ばれるバグ”についてMacユーザーに警告」として放送されてしまったらしいbashの脆弱性 ShellShockですが、CVE-2014-6271に続いてCVE-2014-7169のパッチも配布されたので簡単な適用方法をまとめておきます。


Apple-warns-mac-users-about-a-bug-called-bash-1

APPLE WARNS MAC USERS ABUT A BUG CALLED BASH – Twitter


もっとも簡単(?)なパッチの当て方

 ShellShockが公開されてから何台かのMacをセットアップしパッチ当てましたが、「ShellScriptを作って、Permissionを変更して〜…」とやるよりもAsk Differentの精鋭が提示してくれているこの方法の方が簡単だと思います。

1. xcodebuild を使用するのでMac App StoreからXcodeをインストールし起動、SDKライセンスに同意「Agree」。


Xcode-and-iOS-SDK-License-Agreement

2.ターミナル.appを起動して以下のコマンドをペースト(この時点では実行しないで下さい)。


bash-pbpaste-cut-c-2-sh

pbpaste | cut -c 2- | sh

3. Ask Differentのモノか以下のブロックをクリップボードにコピー(Control + C)します。

$ # If you want to disable auto-imported functions, uncomment the following
$ # export ADD_IMPORT_FUNCTIONS_PATCH=YES
$ 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
$ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053 | patch -p0
$ # See note above about ADD_IMPORT_FUNCTIONS_PATCH
$ [ "$ADD_IMPORT_FUNCTIONS_PATCH" == "YES" ] && curl http://alblue.bandlem.com/import_functions.patch | patch -p0
$ cd ..
$ # Note: DO NOT ADD SUDO TO XCODEBUILD HERE
$ xcodebuild
$ build/Release/bash --version # GNU bash, version 3.2.53(1)-release
$ build/Release/sh --version # GNU bash, version 3.2.53(1)-release
$ sudo cp /bin/bash /bin/bash.old
$ sudo cp /bin/sh /bin/sh.old
$ sudo cp build/Release/bash /bin
$ sudo cp build/Release/sh /bin

4.放置してあったターミナル.appで[Enter]を押し先ほどのコマンドを実行。


AskDifferent-ShellShock-patched

 以上はMacのpbpasteコマンドb.hatenaでクリップボード上のパッチスクリプトをターミナルに渡し、スクリプトの前2行($ )を削除、shで実行という動作をするので、後は途中でターミナルが求めてくるrootパスワードを入力してやるだけでShellShock用 Patch 53が当てられます。


bash-pbpaste-cut-c-2-sh-process

実行結果。


GUN-bash-version-3-2-Patch-53

関連リンク:
How do I recompile Bash to avoid Shellshock (the remote exploit CVE-2014-6271 and CVE-2014-7169)? – Ask Different

アップデートしよう!脆弱性「ShellShock」の問題に対処したBashをリリースb.hatena(Jailbreak用) – Tools 4 Hack

OS XのBashで脆弱性CVE-2014-6271を修正する方法b.hatena

Apple、iMoreの取材に対し「bashの脆弱性ShellShockに対応したソフトウェア・アップデートを提供するために取り組んでいる」とコメント


コメント

  1. Apple7743 より:

    ありがとうございます。前回紹介された方法より簡単です。無事バーションアップ出来ました。

  2. Apple7743 より:

    Ask Differentの方で、これをやった後にバックアップした奴のパーミッション変えるよう推薦されていますね。
    sudo chmod a-x /bin/bash.old /bin/sh.old
    これを実行することで、バックアップ側の権限を無くしている(はず)
    理想的には削除した方が安全ですけど、何かあったときには困るのでこれで良いのかな?

  3. Apple7743 より:

    xcodebuild がインストールしてあるだけだとビルドが実行されませんでした。一度、
    sudo xcodebuild
    して、ライセンスにagreeしたところ実行されました。
    ただ、xcode5がインストールされていたところに先日のアップデートでxcode6が入った状態(で、xcode6はまだ起動してない)だったので、ひょっとしたらxcodeを起動したらライセンス画面が出たのかもしれません。

  4. Apple7743 より:

    その後さらに4件の脆弱性が発見され、現時点で最新バージョンは3.2.57(1)になっています。
    リンクされたAsk Differentの記事も更新されていますね。