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

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

Acabei de atualizar o Ubuntu a partir de um pop-up de atualização. Conheço o Shellshock, então prossigai rapidamente com a instalação. Agora, quando tento correr

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

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

conforme descrito emO que é a vulnerabilidade bash CVE-2014-6271 (Shellshock) e como posso corrigi-la?

Em vez disso, agora recebo apenas um 'olá'. É seguro presumir que as atualizações que instalei ocultam essas mensagens de erro? Depois de revisar o Centro de Software, vejo as seguintes 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, 4.3-7ubuntu1.4 oculta a mensagem de erro de tentativa de definição de função? Desculpe pela suspeita, mas depois de pesquisar no Google, ainda não encontrei um problema semelhante. Qualquer clareza será muito apreciada. Obrigado!

Responder1

De acordo comesta postagem da Revista 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( bashpacote 4.1-3+deb6u2)
  • CentOS 6.5 ( bashpacote 0:4.1.2-15.el6_5.2)
  • Arch Linux ( bashpacote 4.3.026-1)

Eu especulo que é assim que a correção pretende fazer com que ele se comporte, mas por algum motivo, bashos patches iniciais do Ubuntu produziram o erro em vez de ignorar o código extra silenciosamente.


comentário de mattdm:

Os patches iniciais foram na verdadepretendidopara produzir o erro quando uma definição de função incorreta foi encontrada em uma variável de ambiente. Os patches atualizados apenas aparecem em variáveis ​​com prefixos especiais, o que elimina quase todos os riscos do mundo real. Tente env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c :– você deverá 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

informação relacionada