Тестовая команда
x='() { :;}; echo vulnerable' bash
показывает, что моя установка Debian 8 (Jessie) уязвима даже при последних обновлениях. Исследования показывают, что есть исправление для стабильного и нестабильного, но это тестирование не исправлено.
Я полагаю, что патч пройдет тестирование через пару дней, но на самом деле это выглядит достаточно неприятно, чтобы быть параноиком. Есть ли способ получить пакет из нестабильного и установить его, не ломая мою систему? Обновление до нестабильного выглядит так, как будто это вызовет больше проблем, чем решит.
По словам Боба, существует вторая уязвимость Shellshock, которая исправлена во втором патче. Тест на это должен быть:
env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("
Но я не достаточно опытен в Bash, чтобы понять, что это значит или почему это проблема. В любом случае, он делает что-то странное, что предотвращается bash_4.3-9.2_amd64.deb на 64-битных системах, который на момент редактирования работает стабильно и нестабильно, но не в Jessie / тестировании.
Чтобы исправить это для Джесси , получите последнюю версию Bash от unstable и установите ее с помощью dpkg -i
.
Jemenake предлагает
wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb
как команда, которая получит версию 4.3-9.2 для вашей машины.
И вы можете следить за этим с:
sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb
установить его.
Если вам нужны дальнейшие исправления от нестабильного для вашей системы Jessie , это, безусловно, правильный путь ( mutatis mutandis ).
источник
wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb
Это даст правильную архитектуру для вашего устройства.Я отредактировал этот ответ для дополнительных исправлений bash, которые были выпущены в понедельник.
Для Ubuntu 12.04 я запустил обновление, но мне также пришлось запустить установку для bash, чтобы избавиться от этой уязвимости.
Эта команда показывает, что система уязвима, поэтому запустите обновление.
Проверьте снова.
Все еще уязвимы.
Проверьте снова.
Редактировать: после того, как были выпущены дополнительные патчи, выход изменился.
Ура! Исправлена. Это должно работать для других версий, но я не проверял его после 12.04.
Кроме того, ответ runamok ниже работает хорошо, так что дайте ему голос!
источник
apt-get update && apt-get install -y bash
похоже на работу.this is a test
но не ошибку и предупреждение. На моей локальной машине я получаю ошибку, но на моем сервере нет. Что это значит? Мой сервер исправлен? Спасибо.Альтернатива для Debian 6.0 (Squeeze) без загрузки пакетов из Debian 7 (Wheezy):
Используйте репозиторий безопасности LTS, для которого патч был портирован.
Добавьте это к
/etc/apt/sources.list
:Тогда беги
apt-get update && apt-get install bash
.Через: linuxquestions
источник
apt-get update
доapt-get dist-upgrade
и вы получите патч. Просто сделал это сам, и было нажато обновление bash, которое решает проблему.источник
Я исправил это на своем Хакинтоше :
$ brew install bash
источник
Я написал статью о том, как сделать это с помощью apt-get на старых версиях Ubuntu. Вы в основном обновляете ваш sources.list до самого нового, а затем запускаете apt-get update и обновляем bash. Вы можете прочитать это шаг за шагом или скопировать его отсюда .
Резюме:
Прочтите статью, если вы используете old-releases.ubuntu.com и не забудьте, что вы можете изменить ее обратно:
источник
Фиксированная версия (см. Список изменений ) для пакета Bash теперь находится в Debian 8 (Jessie) (см. Информацию о пакете ) по состоянию на 2014-09-26 14:18 UTC.
Второе исправление, упомянутое в комментариях ниже, теперь также находится в репозитории Jessie . Нет необходимости устанавливать из нестабильного. Смотрите ссылку на информацию о пакете выше.
Больше не нужно устанавливать с нестабильного.
Просто беги:
с последующим:
Затем убедитесь, что уязвимость исчезла (во вновь открытой оболочке):
источник
env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("
- если он печатаетstill vulnerable
, то последняя переменная еще не исправлена. AFAIK, Джесси все еще уязвима. Обратите внимание, что эта команда создаст файл с именемecho
в текущем каталоге в случае успеха, и вам нужно будет удалить его перед повторным запуском теста.