Não há mais mensagens de aviso do Bash para o Shellshock após a atualização

1

Acabei de atualizar o Ubuntu de um pop-up de atualização. Eu estou ciente do Shellshock, então eu rapidamente fui em frente com a instalação. Agora, quando tento executar

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

Eu não recebo a saída (que estava recebendo antes)

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'x'
hello

como descrito em O que é a vulnerabilidade do CVE-2014-6271 (Shellshock) e como corrigi-lo?

Em vez disso, agora eu só recebo 'olá'. É seguro assumir que as atualizações instaladas ocultam essas mensagens de erro? Depois de analisar o Centro de Software, vejo as atualizações que instalei:

unity-settings-daemon (14.04.0+14.04.20140414-0ubuntu1, 14.04.0+14.04.20140606-0ubuntu1
aptdaemon-data (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)
python-aptdaemon.gtk3widgets (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)
bash (4.3-7ubuntu1.3, 4.3-7ubuntu1.4)
python-aptdaemon (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)

Mais especificamente, o 4.3-7ubuntu1.4 oculta a mensagem de erro de tentativa de definição de função? Desculpe pela suspeita, mas depois de alguns pesquisando, ainda não encontrei um problema semelhante. Qualquer clareza será muito apreciada. Obrigado!

    
por jerseybyte 27.09.2014 / 16:03

1 resposta

4

De acordo com este post da Fedora :

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

Isso imprimirá "OOPS" em um sistema vulnerável, mas sairá silenciosamente se o bash tiver sido corrigido.

Este é o comportamento visto em:

  • Debian squeeze ( bash pacote 4.1-3+deb6u2 )
  • CentOS 6.5 ( bash package 0:4.1.2-15.el6_5.2 )
  • Arch Linux ( bash pacote 4.3.026-1 )

Eu especulo que é assim que a correção se destina a fazê-la se comportar, mas por algum motivo, os bash patches iniciais do Ubuntu produziram o erro em vez de ignorar o código extra silenciosamente.

mattdm's comentar :

  

Os patches iniciais foram realmente destinados a produzir o erro quando uma definição de função inválida foi encontrada em uma variável de ambiente. Os patches atualizados só procuram em variáveis com prefixo especial, o que elimina a maior parte do risco do mundo real. Tente env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c : - você verá um erro.

Eu verifiquei isso:

$ env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c :
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'BASH_FUNC_x'
$ bash --version | head -1
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
$ apt-cache policy bash | grep Installed
  Installed: 4.3-7ubuntu1.4
    
por muru 27.09.2014 / 17:28