Bash Vulnerability CVE-2014-6271 "Shellshock" - How to Test and Patch.

A new vulnerability, known as "Shellshock", was recently discovered within Bash.  This security hole needs to be patched immediately to avoid potential exploits of your Linux server. Our Fully Managed cPanel customers have already had this patch applied since yesterday.  An additional patch will likely be required to completely resolve "Shellshock" but that additional patch is not yet available.  Once it is, we will apply it for our fully managed customers immediately and provide an update to our self-managed customers on the steps they need to take.

In the interest of getting to the point quickly of how to best fix the issue we will dive right into how you can test your server for the vulnerability and patch it as best can be done for the time being. If you want more information on the vulnerability itself here are a few articles with more information.

http://www.cnet.com/news/bigger-than-heartbleed-bash-bug-could-leave-it-systems-shellshocked/
http://www.troyhunt.com/2014/09/everything-you-need-to-know-about.html?m=1
http://money.cnn.com/2014/09/24/technology/security/bash-bug/index.html

Test:



  • Test for the vulnerability by running the following command at shell:



env x='() { :;}; echo vulnerable' bash -c "echo this is a test"



  • If the output of the above command looks as follows:


vulnerable
this is a test


then your system is vulnerable.


Update Bash:


If cent 5/6/7 run
yum clean all
yum update bash

If bash doesn’t get updated, check /etc/yum.repos.d/CentOS-Base.repo and ensure it is default and not Hivelocity Mirrors(not updated, working on resolution)

 

Manual Build of Bash


For Cent4 or Debian Squeeze or older versions of software you may need to compile bash from source, use the following command script:

The script below does the following:


  1. Downloads bash

  2. Downloads latest patches for bash

  3. Extracts bash

  4. Applies the patches to the source code

  5. Builds and installs bash into /bin/bash


mkdir /src
cd /src
wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
for i in $(seq -f "%03g" 0 25); do wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i; done
tar zxvf bash-4.3.tar.gz
cd bash-4.3
for i in $(seq -f "%03g" 0 25);do patch -p0 < ../bash43-$i; done;
./configure --prefix=/ && make && make install


Additional information and updates:


National Vulnerability Database 

Please note: The original patch (shown above) was thought to have fixed the issue CVE-2014-6271 but is now known to be incomplete. An attacker can provide specially-crafted environment variables containing arbitrary commands that will be executed on vulnerable systems under certain conditions. However, according to Red Hat, customers should upgrade to the version of Bash which contains the fix for CVE-2014-6271 (which was done yesterday for managed clients), and not wait for the new, yet to be released, patch which fixes CVE-2014-7169. CVE-2014-7169 is a less severe issue and patches for it are being worked on at the moment.

To summarize, CVE-2014-6271 does fix the initial low access complexity exploit. But it was incomplete and thus, a new exploit, assigned CVE-2014-7169 is out and that is currently being patched and will be available through repos shortly. This is a high access complexity exploit so it's not as serious or widespread as the initial exploit.