Como corrijo a vulnerabilidade de segurança do Shellshock no debian testing / jessie?

24

O comando de teste

x='() { :;}; echo vulnerable' bash

mostra que minha instalação do Debian 8 (Jessie) é vulnerável, mesmo com as atualizações mais recentes. Pesquisas mostram que há um patch para stable e unstable, mas esse teste não é corrigido.

Eu acho que o patch vai chegar aos testes em alguns dias, mas isso parece desagradável o suficiente para ser paranóico. Existe alguma maneira de obter o pacote de instável e instalá-lo sem quebrar meu sistema? A atualização para a unstable parece causar mais problemas do que resolve.

Segundo Bob, há uma segunda vulnerabilidade Shellshock, que é corrigida em um segundo patch. O teste para isso é suposto ser:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

Mas eu não tenho habilidade suficiente no Bash para descobrir o que isso significa ou porque é um problema. De qualquer forma, ele faz algo estranho, o que é impedido por bash_4.3-9.2_amd64.deb em sistemas de 64 bits, que no momento da edição está estável e instável, mas não em Jessie > testando .

Para corrigir isso para Jessie , obtenha o último Bash da unstable e instale-o com dpkg -i .

Jemenake oferece

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

como um comando que irá obter a versão 4.3-9.2 para a sua máquina.

E você pode seguir isso com:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

para instalá-lo.

Se você precisar de mais patches da unstable para o seu sistema Jessie , este é claramente o caminho a seguir ( mutatis mutandis ).

    
por John Lawrence Aspden 25.09.2014 / 15:41

7 respostas

5

Faça o download do pacote da unstable via este link . Você pode verificar as dependências lá também, embora pareça que o bash unstable tenha as mesmas dependências que o bash do teste. Instale o deb baixado com o seguinte.

dpkg -i
    
por 25.09.2014 / 16:46
25

Eu editei esta resposta para as correções adicionais que foram lançadas na segunda-feira.

Para o Ubuntu 12.04, executei uma atualização, mas também tive que executar a instalação do bash para me livrar da vulnerabilidade.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Esse comando mostra que o sistema é vulnerável, portanto, execute a atualização.

apt-get update && apt-get -y upgrade

Teste novamente.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Ainda vulnerável.

apt-get install -y bash

Teste novamente.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'x'
this is a test

Editar: depois que os patches adicionais foram lançados, a saída mudou.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

Yay! Fixo. Isso deve funcionar para outras versões, mas eu não testei além de 12.04.

Além disso, a resposta do runamok abaixo funciona bem, então dê a ele um upvote!

    
por 25.09.2014 / 19:39
16

Uma alternativa para o Debian 6.0 (Squeeze) sem buscar pacotes do Debian 7 (Wheezy):

Use o repositório de segurança LTS que possui o patch backported.

Adicione isso a /etc/apt/sources.list :

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

Em seguida, execute apt-get update && apt-get install bash .

Via: linuxquestions

    
por 25.09.2014 / 23:43
4

apt-get update antes de apt-get dist-upgrade e você receberá o patch. Apenas fiz isso sozinho e houve uma atualização bash que resolve o problema.

    
por 25.09.2014 / 20:52
3

Eu consertei no meu Hackintosh por:

$ brew install bash

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'x'
bash-4.3$ 
    
por 26.09.2014 / 16:00
1

Eu escrevi um artigo sobre como fazer isso com o apt-get em versões antigas do Ubuntu. Você basicamente atualiza seu sources.list para o mais novo e então executa o apt-get update e upgrade bash. Você pode lê-lo passo a passo ou copiá-lo de aqui .

Resumo:

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --only-upgrade bash

Leia o artigo se você usa old-releases.ubuntu.com e não se esqueça de querer alterá-lo de volta:

sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list
    
por 25.09.2014 / 23:40
1

A versão corrigida (consulte changelog ) para o pacote Bash está no Debian 8 (Jessie) agora (consulte informações do pacote ), de 2014-09-26 14 : 18 UTC.

A segunda correção, mencionada nos comentários abaixo, também está no repositório Jessie agora. Não há necessidade de instalar da unstable. Veja o link da informação do pacote acima.

Não é mais necessário instalar da unstable.

Basta executar:

# aptitude update

seguido por:

# aptitude upgrade

Em seguida, verifique se a vulnerabilidade desapareceu (em um shell recém-aberto):

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'x'
    
por 26.09.2014 / 16:28