Esta semana tem sido divulgado um bug no Bash [1] que já foi classificado pelo governo americano como o problema mais grave dos últimos tempos nos ambientes Unix-like[2]. Os felizes usuários das últimas versões do Debian, Ubuntu, Fedora, CentOS já podem baixar as atualizações e resolver o problema, no entanto quem tem versões antigas deveram procurar outro meio (seja compilando o bash na mão, ou esperando que lancem, ou rezando para que nada de mal aconteça). No caso do Debian 6 (Squeeze), que ainda uso em alguns servidores que não puderam ser instalado, a solução que adotei foi instalar o pacote corrigido de outra versão.
Forma complicada
Se quiser fazer da forma “certa”, pode pular toda esta etapa é ir direto para sessão “Atualização – Debian 6 LTS“. Só usei esta forma enquanto ainda não tinha encontrado o repositório LTS do Debian 6. Se você já a usou pode usar a nova forma sem problemas.
Testei os pacotes do Debian 7 porém eles gerariam várias dependências novas por causa das novas versões de uma série de pacotes, o que poderiam acabar quebrando todo meu sistema. E isso não é uma boa ideia.
Como o Ubuntu lançou correções para as versões 14.04, 12.04 e 10.04 [3] foi só usar os pacotes da versão 10.04 (Lucid Lynx) e o problema foi resolvido sem maiores complicações.
De forma bem direta você pode usar os seguintes comandos na linha de comando do seu servidor Debian 6:
wget https://launchpad.net/ubuntu/+archive/primary/+files/bash-builtins_4.1-2ubuntu3.2_amd64.deb wget https://launchpad.net/ubuntu/+archive/primary/+files/bash-doc_4.1-2ubuntu3.2_all.deb wget https://launchpad.net/ubuntu/+archive/primary/+files/bash-static_4.1-2ubuntu3.2_amd64.deb wget https://launchpad.net/ubuntu/+archive/primary/+files/bash_4.1-2ubuntu3.2_amd64.deb sudo dpkg -i bash*.deb env x='() { :;}; echo vulnerable' bash -c 'echo this is a test'
O último comando é o teste sugerido para saber se o seu sistema está vulnerável ou não.
Se ao executar aparecer a mensagem “vulnerable” então seu sistema está vulnerável, se aparecer uma mensagem de erro como esta abaixo então está tudo certo:
this is a test (stderr) bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x'
Veja que os pacotes que estão nos links são do Ubuntu 64bits e portanto só funcionarão no Debian com esta arquitetura Se você precisa corrigir o Debian 32bits então deverá baixar os pacotes para 32bits também, ou então poderá ter problemas.
wget https://launchpad.net/ubuntu/+archive/primary/+files/bash-builtins_4.1-2ubuntu3.2_i386.deb wget https://launchpad.net/ubuntu/+archive/primary/+files/bash-doc_4.1-2ubuntu3.2_all.deb wget https://launchpad.net/ubuntu/+archive/primary/+files/bash-static_4.1-2ubuntu3.2_i386.deb wget https://launchpad.net/ubuntu/+archive/primary/+files/bash_4.1-2ubuntu3.2_i386.deb sudo dpkg -i bash*.deb env x='() { :;}; echo vulnerable' bash -c 'echo this is a test'
Caso precise baixar para Sparc, armel ia64 é só baixar no PPA do Bash [4].
E só pra concluir é bom lembrar que o Mac Os, Android, Solaris e muitos roteadores e access point por ai possuem seus sistemas baseados em Linux, portanto podem estar vulneráveis. Estejam atentos as notas de seus fabricantes sobre o caso.
Atualização – Debian 6 LTS
Inconformado com a ideia de que o Debian 6 não tinha lançado nenhuma atualização (afinal de contas ele foi definido como uma versão LTS), saí em busca de mais informações e encontrei.
De forma mais “Debian” de fazer as coisas basta adicionar o repositório LTS no arquivo sources.list do seu servidor e atualizar os pacotes normalmente.
As informações estão na página do projeto Debian LTS [6] e os repositórios estão mencionados em [7], mas caso queira queimar etapas e resolver o problemas sem ler mais nada, simplesmente execute os comandos abaixo como usuário root:
cat << EOF >> /etc/apt/sources.list deb http://http.debian.net/debian/ squeeze-lts main contrib non-free EOF
apt-get update apt-get upgrade
Referências
[1] Arstechnica. http://arstechnica.com/security/2014/09/bug-in-bash-shell-creates-big-security-hole-on-anything-with-nix-in-it/
[2] Globo. Governo americano lança alerta contra falha na segurança de computadores. http://globotv.globo.com/rede-globo/bom-dia-brasil/t/edicoes/v/governo-americano-lanca-alerta-contra-falha-na-seguranca-de-computadores/3655420/
[3] Ubuntu. Ubuntu Security Notice USN-2362-1.http://www.ubuntu.com/usn/usn-2362-1/
[4] Ubuntu. PPA Bash. https://launchpad.net/ubuntu/+source/bash
[5] Debian News. Debian 6 debuts its long term support period. https://www.debian.org/News/2014/20140616
[6] Debian. LTS Developmet. https://wiki.debian.org/LTS/Development
[7] Debian. LTS Using. https://wiki.debian.org/LTS/Using
O Debian 6 tem suporte a LTS. Ative o repositório squeeze-lts e tenha um Debian 6 com suporte de segurança para diversos pacotes, inclusive o bash.
https://www.debian.org/News/2014/20140616
Obrigado pela informação @Adriano, já tinha encontrado a dica e estava atualizando o post, só faltava o link que você postou para ficar mais claro. Obrigado e abç.