Ainda vulnerável a Shellshock com Ubuntu 14.04.1 e Bash 4.3-7ubuntu1.4 - O que vem depois?

3

O título diz tudo.

Ainda estou vulnerável (CVE-2014-6271 e possivelmente CVE-2014-7169) com o Ubuntu 14.04.1 e o Bash 4.3-7ubuntu1.4

  • apt-get update = nada
  • apt-get upgrade = nada
  • apt-get install ligar = nada

Verificou isto: link (não há versões mais recentes)

Teste Ran:

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Obtenha:

vulnerable
hello

Já faz isso há uma semana!

[Atualização]

Eu instalei originalmente o bash_4.3.orig.tar.gz do link que pode foi um erro.

Eu fiz isso antes de fazer sudo apt-get update && sudo apt-get install bash funcionar (eu acho).

Nesta página, existem outros arquivos, bash_4.3-7ubuntu1.4.debian.tar.gz e bash_4.3-7ubuntu1.4.dsc. Eu não sei o que fazer com isso. Eu baixei o bash_4.3-7ubuntu1.4.debian.tar.gz e olhei para ele, mas não sabia o que fazer com ele.

Eu ainda estava vulnerável de acordo com este teste: env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Eu tentei quantos gyrations do apt-get, dpkg e instalar do bash_4.3.orig.tar.gz como você pode imaginar. Ainda falha no teste.

Eu encontrei:

  • / usr / local / bin / bash - bash do GNU, versão 4.3.0 (1) -release (i686-pc-linux-gnu)
  • / bin / bash - bash do GNU, versão 4.3.11 (1) -release (i686-pc-linux-gnu)

Esta manhã, depois de andar por aí, eu finalmente me desesperei e joguei uma Ave Maria e tentei o script de: Como faço para corrigir a vulnerabilidade shellshock em um sistema Ubuntu obsoleto que eu não posso atualizar?

Agora eu tenho:

  • / bin / bash - bash do GNU, versão 4.3.27 (1) -release (i686-pc-linux-gnu)

Ainda falha no teste: env x='() { :;}; echo vulnerable' bash -c 'echo hello' quando eu faço logon. Então, eu sudo /bin/bash e tentei novamente. Ainda falha.

Então eu tentei:

sudo apt-get install --only-upgrade bash

e obtenha ...

Reading package lists... Done
Building dependency tree
Reading state information... Done
bash is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/549 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package bash (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
Errors were encountered while processing:
 bash
E: Sub-process /usr/bin/dpkg returned an error code (1)

Então eu tentei:

sudo apt-get install bash

e obtenha ...

Reading package lists... Done
Building dependency tree
Reading state information... Done
bash is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/549 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package bash (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
Errors were encountered while processing:
 bash
E: Sub-process /usr/bin/dpkg returned an error code (1)

Isso não me surpreende, é claro.

Por favor ajude.

Alguém pode me ajudar a forçar uma atualização de ambos / bin / bash e / usr / local / bin / bash com uma versão que funciona? Posso usar os arquivos encontrados nesta página link ou posso limpar a instalação do GNU? ? Além disso, o bash pode ser copiado de / bin para / usr / local / bin / (ou vice-versa) se eu conseguir apenas um fixo?

Eu preciso de respostas strongs do Linux e não apenas dos papagaios do apt-get vistos por toda parte por favor. Eu li tudo ou quase tudo que posso encontrar. Se você tiver um recurso, por favor me avise. Você pode ter tido sucesso, mas eu não tive nada além de problemas .

Entrar em bate-papo é bom.

    
por closetnoc 28.09.2014 / 11:14

4 respostas

2

O Debian fornece a fonte original do original , depois os arquivos de controle e modificações locais. O .orig no nome do arquivo está dizendo que ele não foi modificado. O .dsc é apenas metadados. Dentro do arquivo .debian.tar.gz , você encontrará todos os patches, incluindo as correções de segurança. O processo de construção leva o upstream original, aplica os patches e constrói os pacotes a partir disso. O Debian (e o Ubuntu) se inclinam strongmente contra o uso de novas versões do upstream, porque novas versões adicionam novos bugs e regressões, não apenas corrigindo problemas conhecidos.

A execução de sudo apt-get install --reinstall bash deve corrigir o problema - a saída do apt-get está dizendo que ele não fez uma instalação, e tentou atualizar as configurações.

Se, e somente , se o apt-get falhar, você deseja:

  1. Assegure-se de ter outro shell instalado, de modo que uma falha ao remover o bash não o bloqueie do sistema; instale ksh ou zsh e considere a configuração temporária de um shell de login para um desses, para que você tenha uma entrada.
  2. sudo dpkg --remove --force-remove-reinstreq bash
  3. sudo apt-get install bash

Depois, você quer começar a se familiarizar mais com o sistema de páginas de manual usado pelo Unix; o comando man é seu amigo aqui. man apt-get e man dpkg lhe dariam muito do que você precisa aqui.

    
por 01.10.2014 / 02:34
2

Parece-me que o problema é que você acidentalmente instalou uma versão ruim do bash em /usr/local e já tem uma versão melhor em /bin . Então não vejo por que a resposta não é apenas rm /usr/local/bin/bash

OK, isso não eliminará todos os arquivos de suporte fornecidos, mas garantirá que a versão incorreta não seja executada.

Se você ainda tiver o diretório onde você fez o make install da versão ruim, você pode ir lá e fazer um make uninstall para limpar tudo. Se você ainda não tem ... você provavelmente pode descompactar e construir novamente (certificando-se de combinar os argumentos ./configure que você usou na primeira vez) e executar o make uninstall .

make uninstall deve funcionar com qualquer programa GNU do qual você ainda tenha o diretório de compilação original. Está nos padrões de codificação que todos os pacotes fonte GNU têm a seguir.

    
por 01.10.2014 / 02:53
1

Eu descobri que Apt-get install bash trabalhou para se livrar do bug

    
por 30.09.2014 / 14:18
1

Por favor, não suba a votação nesta resposta até que a recompensa seja paga - se você o fizer.

Quero agradecer primeiro (!) àqueles que me ajudaram e depois explicar o que aconteceu e o que não fazer e o que resolveu esse problema. Então, por favor, descubra comigo. Eu estou fazendo isso para futuros usuários.

Obrigado: Eu quero humildemente agradecer (!) Paul P (aqui) e Manfred Hampl (m-hampl) de answers.launchpad.net e pedir desculpas por ser um pouco obtuso. Ambos me ajudaram a resolver esse problema. Eu precisava de um herói e ambos se levantaram para ser meu herói. Agradeço aos dois com tudo o que tenho.

Na verdade, eu agradeço (!) a todos que entraram na conversa. Havia sabedoria em tudo isso. Especialmente, unkilbeeg, que deu uma pista inestimável. É claro que não posso esquecer que Cyrus entrou imediatamente e também foi inestimável.

O que aconteceu: No nevoeiro das coisas, e com minha grande ignorância em todas as coisas instalar / atualizar e assim por diante, eu segui páginas, opiniões e links e pensei que estava fazendo a coisa certa. No começo e no momento, o apt-get não tinha um pacote disponível e então eu passei por launchpad.net porque é para isso que o Ubuntu me indicou.

O que eu não percebi foi o que fazer com o recurso launchpad.net. Eu instalei o arquivo .gz de instalação base esperando uma atualização em algum lugar. Para encurtar a história, o que eu não percebi é que existem arquivos .deb em outra página que deveriam ter sido o meu foco. Se você está tentando atualizar algo no Ubuntu usando o launchpad.net, procure por um arquivo .deb apropriado.

Entre o apt-get e o launchpad.net, acabei com duas versões do bash que confundiram seriamente o problema.

Pior ainda, havia uma proposta de correção do GNU, que pode ter sido boa para alguns, mas quebrou o bash em / bin. Graças a Deus (!) Havia duas versões. Paul P me ajudou a consertar isso com a emissão de um comando de instalação para sobrescrever a instalação do GNU.

No final: Tanto Paul P quanto Manfred Hampl estavam na mesma pista que eu pulei entre dois sites. Infelizmente, eu estava muito obtuso para Paul P e peço desculpas por isso.

O que precisava ser conhecido era que $ PATH era importante como unkilbeeg apontado. A única versão do bash que deve existir (pelo que entendi e lembro que sou obtuso), é a que existe em / bin e a única instalação que deve ser obtida são aquelas que você obtém através do apt-get e opcionalmente qualquer arquivo deb do launchpad. líquido. Tanto Paul P quanto Manfred Hampl estavam apontando que a versão / usr / local / bin do bash deveria ser deletada. Então foi isso que eu fiz. Como se viu, enquanto eu pensava que estava usando / usr / bin, porque é isso que foi atribuído ao meu usuário, eu estava realmente usando / local / usr / bin porque era o primeiro no meu caminho. Boa pegada!

Lembre-se que este é o conselho do Ubuntu. Pode não se aplicar a todos.

SEMPRE (!) use o apt-get primeiro se puder. Em segundo lugar, use o launchpad.net e procure o arquivo .deb correto. Não faça qualquer outra coisa. Enquanto os recursos do GNU são valiosos, é melhor deixar o Ubuntu criar um pacote para você e simplesmente esperar por ele. Não atualize o Ubuntu de outros recursos, a menos que você realmente saiba o que está fazendo.

Recompensa: Eu gostaria de poder dar a todos uma parte da recompensa ou pelo menos dividi-la entre Paul P e Manfred Hampl, mas isso é impossível. Estou marcando Paul P como a resposta aceita e pedir-lhe para atualizar sua resposta para futuros leitores. Se ele precisar de informações minhas, eu vou dar de bom grado.

Obrigado novamente: Mais uma vez, agradeço (!) A todos que entraram na conversa. Simplesmente entrar em sintonia pode ser muito mais importante do que você pode imaginar. Uma pista simples pode realmente ajudar alguém que está com problemas. O apoio de uma comunidade que se importa imenso. Obrigado novamente

    
por 01.10.2014 / 23:11