Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Apple のリリースした、Bash の更新が不完全だったので、パッチをあてなおした。

More than 5 years have passed since last update.

Apple の Bash の更新が不完全だったらしい

セキュリティホールメモのBash ShellShock バグ (CVE-2014-6271, CVE-2014-7169, CVE-2014-6277, CVE-2014-6278, CVE-2014-7186, CVE-2014-7187) 修正情報まとめ
(various)
によると、Appleの修正は不完全だそうだ。

パッチが五月雨式だったから?

ShellShock の 問題は修正パッチリリース後にそのパッチが不完全でさらにパッチがでるという状況だったので、パッチがリリースされた直後の更新方法では不完全なパッチだけしか対応していないことがある。この記事もそうかもしれない。

また後発でパッチがリリースされる可能性は否定できないので注意が必要である。

ビルド

今回は、Appleの公開しているソースに GNUがリリースしている、052 から 056 057のパッチをあててビルドすることにした。他に必要なパッチがあれば、同様の方法で適用してほしい。

Every Mac Is Vulnerble shellshock bash exploit heres patch os x を参考にしている。

必要なもの

Xcode (Command Line Tools)

ビルド方法

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
for i in $(seq -f "%03g" 52 57);do curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-$i | patch -p0; done
cd ..
xcodebuild
build/Release/bash --version
build/Release/sh --version

なんらかの事情でcurlで httpsを扱えない場合には、しかたがないので、curl -kに置きかえるとダウンロードはできるが、信頼性は減少する。

最後の bash --version でVersionが確認できる。

いれかえ

Appleのリリースしたバージョンも念のために削除せずにおいておいたほうがいいかもしれないので、以下のようにすることにした。

sudo cp -p /bin/bash /bin/bash.org
sudo cp -p /bin/sh /bin/sh.org
sudo cp -p build/Release/bash /bin/bash
sudo cp -p build/Release/sh /bin/sh
TomoDote
openchainproject
OpenChain Project を支援しています。
https://openchain-project.github.io/OpenChain-JWG/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away