Updating OS X to fix the bash bug
As you may have heard, a critical security bug in bash was recently found.[1] Both OS X 10.9 and 10.10 are affected. You can check if you are by running this snippet:
$ X='() { x; }; echo vulnerable' bash -c ''
If you see 'vulnerable' in the output, you need to be patched.
While Apple has yet to release a patch, you may be anxious to fix this in your fleet. Here's how:
0) Install Xcode
1) Dowload the bash source code from Apple's OpenSource repository[2]:
$ curl -O https://opensource.apple.com/tarballs/bash/bash-92.tar.gz
2) Dowload the bash 3.2 patch from gnu.org:
$ curl -O https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052
3) Expand the bash source:
$ tar xzf bash-92.tar.gz
4) Apply the patch:
# Apply patch in the bash-92/bash-3.2 directory
$ cd bash-92/bash-3.2
$ patch -p0 <../../bash32-052
patching file builtins/common.h
patching file builtins/evalstring.c
patching file variables.c
patching file patchlevel.h
5) Build the patched version:
# Build from the bash-92 directory
$ cd ..
$ xcodebuild
6) Test the new shell:
$ X='() { x; }; echo vulnerable' ./build/Release/bash -c ''
./build/Release/bash: warning: X: ignoring function definition attempt
./build/Release/bash: error importing function definition for `X'
7) Use your configuration management (puppet, chef, Casper) or package management (munki, Casper) to deploy both the new bash and sh.
N.B.: This first official patch doesn't mitigate every problem with the code, so keep up-to-date with discussions about it.
Short URL to this post:
http://goo.gl/NPkiL9
[1] Lots of sources:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-627
http://seclists.org/oss-sec/2014/q3/650
http://lcamtuf.blogspot.com/2014/09/quick-notes-about-bash-bug-its-impact.html
[2] http://www.opensource.apple.com/release/os-x-1094/
As you may have heard, a critical security bug in bash was recently found.[1] Both OS X 10.9 and 10.10 are affected. You can check if you are by running this snippet:
$ X='() { x; }; echo vulnerable' bash -c ''
If you see 'vulnerable' in the output, you need to be patched.
While Apple has yet to release a patch, you may be anxious to fix this in your fleet. Here's how:
0) Install Xcode
1) Dowload the bash source code from Apple's OpenSource repository[2]:
$ curl -O https://opensource.apple.com/tarballs/bash/bash-92.tar.gz
2) Dowload the bash 3.2 patch from gnu.org:
$ curl -O https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052
3) Expand the bash source:
$ tar xzf bash-92.tar.gz
4) Apply the patch:
# Apply patch in the bash-92/bash-3.2 directory
$ cd bash-92/bash-3.2
$ patch -p0 <../../bash32-052
patching file builtins/common.h
patching file builtins/evalstring.c
patching file variables.c
patching file patchlevel.h
5) Build the patched version:
# Build from the bash-92 directory
$ cd ..
$ xcodebuild
6) Test the new shell:
$ X='() { x; }; echo vulnerable' ./build/Release/bash -c ''
./build/Release/bash: warning: X: ignoring function definition attempt
./build/Release/bash: error importing function definition for `X'
7) Use your configuration management (puppet, chef, Casper) or package management (munki, Casper) to deploy both the new bash and sh.
N.B.: This first official patch doesn't mitigate every problem with the code, so keep up-to-date with discussions about it.
Short URL to this post:
http://goo.gl/NPkiL9
[1] Lots of sources:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-627
http://seclists.org/oss-sec/2014/q3/650
http://lcamtuf.blogspot.com/2014/09/quick-notes-about-bash-bug-its-impact.html
[2] http://www.opensource.apple.com/release/os-x-1094/
View 11 previous comments
- Not certain, but I'd guess it's some sort of internal-to-Apple versioning.Sep 26, 2014
- +Amanda Walker "seems to work" meaning the same binary works on all those versions, or building bash afresh on each OS X version?Sep 26, 2014
- I had to build from source on 10.6; a binary built on 10.9 did not run on 10.6. I didn't try any other permutations.Sep 26, 2014
- Machines running 10.6 have a bevy of other terrible security issues. This bash bug would be the least of them.Sep 26, 2014
- Yeah, Firefox still runs on 10.6, so we still run it :(Sep 26, 2014
- Building from source: a 10.9 binary won't run on 10.6.Sep 26, 2014