После обновления больше не отображаются предупреждающие сообщения Bash для Shellshock

После обновления больше не отображаются предупреждающие сообщения Bash для Shellshock

Я только что обновил Ubuntu из всплывающего окна Update. Я знаю о Shellshock, поэтому я быстро приступил к установке. Теперь, когда я пытаюсь запустить

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

Я не получаю результат (который получал раньше)

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

как описано вЧто такое уязвимость Bash CVE-2014-6271 (Shellshock) и как ее исправить?

Вместо этого я просто получаю «привет». Можно ли с уверенностью предположить, что установленные мной обновления скрывают эти сообщения об ошибках? После просмотра Центра программного обеспечения я вижу следующие установленные мной обновления:

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)

А точнее, скрывает ли 4.3-7ubuntu1.4 сообщение об ошибке определения функции? Извините за подозрение, но после некоторого гугления я пока не нашел похожей проблемы. Любая ясность будет очень кстати. Спасибо!

решение1

В соответствии сэтот пост в журнале Fedora:

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

В уязвимой системе это выведет сообщение «OOPS», но при этом произойдет тихое завершение работы, если bash был исправлен.

Такое поведение наблюдается на:

  • Debian squeeze( bashпакет 4.1-3+deb6u2)
  • CentOS 6.5 ( bashпакет 0:4.1.2-15.el6_5.2)
  • Arch Linux ( bashпакет 4.3.026-1)

Я предполагаю, что исправление призвано заставить его вести себя именно так, но по какой-то причине первоначальные bashисправления Ubuntu вызывали ошибку вместо того, чтобы молча игнорировать дополнительный код.


комментарий mattdm:

Первоначальные патчи были на самом деленамеревалсядля создания ошибки, когда в переменной окружения было найдено неверное определение функции. Обновленные патчи смотрят только на переменные со специальными префиксами, что исключает практически весь риск реального мира. Попробуйте env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c :— вы должны увидеть ошибку.

Я это проверил:

$ 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

Связанный контент