LINUX.ORG.RU

Уязвимость в bash и множественные уязвимости в APT

 , ,


3

9

Опубликованы подробности уязвимости CVE-2014-6271 в bash, которая позволяет злоумышленнику произвести удалённое выполнение кода.

Уязвимость возможна благодаря одной из особенностей bash - использования переменных окружения для экспорта функций (если в переменной содержится "() {", то её содержимое будет интерпретировано как функция). Проблема заключается в том, что обработка продолжается даже после символа «}», поэтому, если добавить любую команду — она будет выполнена. Атаке подвержены sshd, Git и Subversion (при определённых обстоятельствах), Apache с mod_cgi или mod_cgid (если скрипты CGI написаны на bash или вызывают bash-скрипты), клиенты DHCP (если они вызывают скрипты для настройки системы), CUPS и вообще любые приложения, которые запускают bash (или bash-скрипты) и могут устанавливать переменные окружения на основе данных, полученных извне.

Для проверки наличия уязвимости в системе можно выполнить команду

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Если система уязвима, в консоль будут выведены строки «vulnerable» и «this is a test», а при отсутствии уязвимости, сообщение об ошибке вида
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

Обновление с исправлением уязвимости уже выпущено для некоторых популярных дистрибутивов.

Кроме того, объявлено об исправлении множественных уязвимостей в пакетном менеджере APT. Уязвимости CVE-2014-0487, CVE-2014-0490, CVE-2014-0488 и CVE-2014-0489 позволяют обойти проверку цифровых подписей пакетов и репозиториев, а уязвимость CVE-2014-6273 - выполнение произвольного кода, отправленного злоумышленником, вмешавшимся в трафик.

anonymous

Проверено: JB ()

Что за паника? Обновился ещё неделю назад.

cheshuyka_joes
()
Ответ на: комментарий от anonymous

А если бы использовался systemd, в котором каждая последующая строчка завязана на предыдущую - пришлось бы чистить логи полностью, что уже намного сильнее привлечёт внимание к тому, что сервер-то уже скомпрометирован и нужно его чистить.

man wtmp и т.д. где все точно также, но чистить записи возможно, весь вопрос в знании формата.

anc ★★★★★
()

Что-то они зачастили с обновлениями в дебиан. Урожайный месяц.

chg ★★★★★
()
Ответ на: комментарий от anonymous

А если бы использовался systemd, в котором каждая последующая строчка завязана на предыдущую - пришлось бы чистить логи полностью, что уже намного сильнее привлечёт внимание к тому, что сервер-то уже скомпрометирован и нужно его чистить.

Если так, то это круто. Просто я systemd еще не видел.

xtraeft ★★☆☆
()
Ответ на: комментарий от anonymous

на gentoo, не обновлялся уже 2 недели и не работало.

erzent ☆☆
()
Ответ на: комментарий от anonymous

Тут два варианта: 1.Мейнтейнеры не знают как это исправить. 2.Ищут вариант как эту дырку закрыть и сделать новую, о которой еще никто не знает. ИМХО но я в такие «случайные» «ошибки» не верю.

CoolAller
()
igor@sia:(~) env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
CHIPOK ★★★
()

Уязвимости ведь не будет если баш был поставлен отдельно? "() { :; }; code" можно скормить только sh и он не сработает.

KillTheCat ★★★★★
()
Ответ на: комментарий от KillTheCat

Уязвимости ведь не будет если баш был поставлен отдельно? "() { :; }; code" можно скормить только sh и он не сработает.

Если я что-то еще понимаю, в sh отсутствуют многие возможности bash, а сам Bash содержит все команды интерпретатора sh плюс многие другие. И как мне видится, если у вас процессы/демоны используют sh, а не bash, то проблем не должно быть. Так как при установке Bash, не обязательно им заменять sh, первый может использоваться для вызовов пользователя, а второй использоваться внутренними системными вызовами демонов.

PS. Если у кого-то есть другая информация, поправьте.

CoolAller
()
Ответ на: комментарий от MrClon

Потому что питон говно, это же очевидно.

anonymous
()

На Sabayonе $ env x='() { :;}; echo vulnerable' bash -c «echo this is a test» bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' this is a test

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.