Security Lab

Компрометация системы в bash

Дата публикации:25.09.2014
Всего просмотров:15122
Опасность:
Высокая
Наличие исправления: Да
Количество уязвимостей:1
CVSSv2 рейтинг: 10 (AV:N/AC:L/Au:N/C:C/I:C/A:C/E:U/RL:OF/RC:C)
CVE ID: CVE-2014-6271
Вектор эксплуатации: Удаленная
Воздействие: Компрометация системы
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: bash версии до 4.3

Описание:
Уязвимости позволяют удаленному пользователю выполнить произвольный код на целевой системе.

Уязвимость существует из-за ошибки обработки входных данных при выполнении синтаксического анализа кода. Удаленный пользователь может выполнить произвольные команды на целевой системе.

Как уязвимость может затронуть пользователя?

bash и ОС хранят список переменных окружения, которые описывают текущего пользователя, путь к приложениям на жестком диске и прочие функции. Создав переменную окружения с особой структурой, взломщик сможет выполнить произвольный код на ПК жертвы во время следующего запуска bash.

Создать переменную окружения можно следующим образом:

· Установить удаленное соединение через SSH и попробовать войти в систему. Подобрав специфический логин или имя хоста, можно создать переменную окружения со специфическими данными;

· Вынудить пользователя создать переменную окружения самостоятельно;

· Вынудить определенные программы задать нужное значение переменной окружения. К примеру, пользователь запустил web-сервер и скрипт, устанавливающий собственную переменную окружения. Даже несмотря на то, что работа скрипта не изменяет системные переменные окружения, ОС уже уязвима.

Установив собственную переменную окружения, хакеры смогут выполнить произвольный код на устройстве пользователя при следующем запуске bash. Ситуация может стать еще опаснее при использовании команды sudo –s, запускающей bash с корневыми правами.

Отметим, что некоторые программы используют bash для совершения собственных операций. Даже если пользователь не использует bash, его ПК уже может быть уязвим.

Проверка

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

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

Если система пользователя защищена, bash вернет следующее сообщение:

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

Если система пользователя уязвима, bash вернет следующее сообщение:

vulnerable
hello

Исправление

Разработчики Bash выпустили срочное исправление, устраняющее эту уязвимость. Всем пользователям ОС Linux (особенно дистрибутивов Ubuntu и Debian) рекомендуется как можно скорее загрузить последние обновления для данного программного продукта.

URL производителя: http://ftp.gnu.org/pub/gnu/bash/

Решение: Установите последнюю версию 4.3 с сайта производителя.

Ссылки: http://seclists.org/oss-sec/2014/q3/649