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 ()

В комментариях на хаборе народ уже придумывает различные векторы атаки :)

Даже в сях можно напороться на то, что функция system вызывает shell. Да, она небезопасна сама по себе, но это не отменяет того, что она много где встречается.]Даже в сях можно напороться на то, что функция system вызывает shell. Да, она небезопасна сама по себе, но это не отменяет того, что она много где встречается.

$ env LC_ALL='() { :; }; echo -n UPTIME:; /usr/bin/uptime' ssh git@______.xx

UPTIME: 23:08:53 up 314 days, 9:36, 2 users, load average: 1.50, 1.46, 1.47

anonymous
()

sshd, Git и Subversion (при определённых обстоятельствах), Apache с mod_cgi или mod_cgid (если скрипты CGI написаны на bash или вызывают bash-скрипты), клиенты DHCP (если они вызывают скрипты для настройки системы), CUPS и вообще любые приложения, которые запускают bash (или bash-скрипты) и могут устанавливать переменные окружения на основе данных, полученных извне.

epic_win.aac

cipher ★★★★★
()
λ> env x='() { :;}; echo vulnerable' zsh -c "echo this is a test" 
this is a test
Deleted
()

А в чём эпичность-то? Если злоумышленник может выставить переменные окружения, значит доступ на уровне пользователя у него уже есть, а ни о каком повышении привилегий здесь речь не идёт. Ошибка, конечно, но не вижу никакой эпичной уязвимости

Gvidon ★★★★
()

Эпично, но не особо страшно, права-то останутся от демона хозяина?

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

CGI, работающие через переменные окружения и bash

Мсье знает толк. К тому же, нужно ещё как-то выставить эту самую переменную окружения

Gvidon ★★★★
()

home@debian:~$ env x='() { :;}; echo vulnerable' bash -c «echo this is a test» vulnerable this is a test home@debian:~$ обновиться надо(((

anonymous
()

Утреннее обновление помогает от дневных уязвимостей :)

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

если бы эта уязвимость затрагивала sshd было бы эпично, а так только сравнительно небольшое количество серверов с cgi ...

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

Хорошо что у меня yum :)

и чо?

yum --version && env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
3.4.3
  Установлено: rpm-4.11.3-1.fc20.x86_64 из 2014-09-21 06:58
  Собрано    : Fedora Project из 2014-09-05 13:25
  Передано   : Panu Matilainen <pmatilai@redhat.com> из 2014-09-05

  Установлено: yum-3.4.3-152.fc20.noarch из 2014-07-08 11:56
  Собрано    : Fedora Project из 2014-06-18 12:25
  Передано   : James Antill <james at fedoraproject.org> из 2014-06-18
vulnerable
this is a test

novitchok ★★★★★
()

Ну, решето это мягко сказано.

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

и чо?

видимо это относилось к багам apt, а не bash...

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

zsh тоже уязвим?

Нет, проблема только в bash.

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

мсье знает, как работает CGI, и заодно знает английский, чтобы прочитать оригинал, в отличие от...

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

Найден способ обхода патча

Способ уже не работает (ubuntu)

Old_Hamster ★★★
()

Вот это дыра так дыра! Эпичная просто!

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

Найден способ обхода патча, устраняющего уязвимость в bash. В дистрибутивах проблема пока остаётся неисправленной.

В Gentoo =app-shells/bash-4.2_p48-r1 исправлено.

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

Ну, например, некоторые git-репозитории дают доступ через ssh через restricted shell, и там такое можно провернуть.

ValdikSS ★★★★★
()

Скрипты, внутри которых используются CGI-скрипты, подвержены этой уязвимости. За примером далеко ходить не надо — Cpanel. У многих роутеров в админках используется CGI (правда, не знаю насчет CGI, который в составе goahead. Goahead очень часто используется в роутерах, но там GCI своеобразный). Сейчас многие сканируют сеть и заражают устройства таким вот способом, добавляя команды, которые нужно выполнить, в User-Agent, Referer и Cookie. Так что будьте осторожны, особенно со всякими embedded-устройствами.

ValdikSS ★★★★★
()

вообще любые приложения, которые запускают bash (или bash-скрипты) и могут устанавливать переменные окружения на основе данных, полученных извне.
устанавливать переменные окружения на основе данных, полученных извне.

Мне одному кажется что на самом деле проблема не в bash а в программах которые скармливают башу что попало таким образом?

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

ещё одно решето. только в файл пишет :)

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

Эпичность в эпических программах которые позволяют анонимусам удалённо устанавливать переменные окружения.

MrClon ★★★★★
()

Жесть. Я надеюсь RouterOS и днс-записи не уязвимы?

KillTheCat ★★★★★
()

Новость о дырах в APT подло красуется рядом с релизом RPM, похоже на рекламу :)

I-Love-Microsoft ★★★★★
()

Это эпик. Обновил уязвимый серверочек, на душе стало значительно спокойнее.

Axon ★★★★★
()

Всем Дебиановцам! https://packages.debian.org/sid/bash Качаем версию для своей архитектуры и выполняем

sudo dkpg -i bash_такой-то.deb
Там исправлена ошибка. Затем https://packages.debian.org/sid/apt Качаем версию для своей архитектуры и выполняем
sudo dkpg -i apt_такой-то.deb
В bash_такой-то.deb и apt_такой-то.deb исправьте название файла на название скачанного файла. Всем удачи и безопасности.

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