Bash Shell, “Shellshock”, corre√ß√£o de bug de seguran√ßa (Ubuntu, CentOS).

Um administrador ou usu√°rio de servidor Linux?

Uma vulnerabilidade de seguran√ßa recente foi descoberta no GNU Bourne Again Shell (Bash). Se voc√™ usa o sistema operacional Windows, pode parar de ler agora. ūüôā Caso contr√°rio, voc√™ pode querer corrigir seu sistema operacional baseado em Unix: Ubuntu, CentOS, Fedora e um monte de outros caras legais.

A vulnerabilidade apelidada por alguns de “Shellshock”, foi supostamente encontrada em uso por um exploit ativo contra servidores web.

Então, aqui está como você proceder para não ser uma vítima.

Verifique o estado do seu bash:

  • Verifique se voc√™ est√° vulner√°vel executando isto em seu shell bash:

Comando abaixo:

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

Um sistema vulner√°vel produziria:

vulnerable
this is a test

Um sistema corrigido deve gerar:

bash: warning: x: ignoring function definition attempt
bash
: error importing function definition for `x'
this is a test

Consertar

  • Para Ubuntu, execute isto em seu Bash:

Comando abaixo:

sudo apt-get update && sudo apt-get upgrade

Isso baixa e instala todas as atualiza√ß√Ķes.

  • Para CentOS:

Comando abaixo:

yum update

Isso deve atualizar e corrigir seu bash junto com quaisquer outras atualiza√ß√Ķes.

Deixe-me saber se você tiver qualquer problema nos comentários.

Obrigado.

Fonte : Bash Bug

ATUALIZAR

Como @montanaflynn apontou nos coment√°rios, a solu√ß√£o acima n√£o funcionaria para vers√Ķes mais antigas do Ubuntu.

Aqui est√° um script que ele adicionou para contornar isso

#!/bin/sh

GCC
=`which gcc`
if [ -z "$GCC" ]; then
echo
"Your system does not have the GNU gcc complier installed."
echo
"Please install the gcc complier and then run this script again."
exit 1
fi

echo
"Creating tmp folder..."
cd
/tmp
mkdir bash

cd bash

echo
"Downloading Bash..."
wget
-N https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
echo
"Downloading Bash patches..."
while [ true ];
do i=`expr $i + 1`; wget -N https://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$(printf '%03g' $i);
if [ $? -ne 0 ];
then break;
fi;
done
echo
"Extracting bash from tar.gz..."
tar zxvf bash
-4.3.tar.gz
cd bash
-4.3
echo
"Applying Patches..."
for p in `ls ../bash43-[0-9][0-9][0-9]`; do patch -p0 < $p; done

echo
"Ready to install. Configuring..."
./configure --prefix=/
echo
"Running make"
make

echo
"Running make install"
if [[ "$USER" == "root" ]]
then
make install

cp
/bin/bash /usr/local/bin/bash
else
sudo make install

sudo cp
/bin/bash /usr/local/bin/bash
fi

echo
"----------------------------------------------"
echo
"Now open a new bash shell to see if it's still vulnerable."

Copie o conte√ļdo, colar em um arquivo file.sh .
Execute file.sh como um script bash.

Obrigado @montanaflynn