Несколько часов назад в списке рассылки SecLists сообщили о критической уязвимости в командной оболочке bash, которая установлена почти на всех популярных дистрибутивах Linux.

Уязвимость допускает удалённое исполнение кода на компьютере, где установлен bash. Это связано с некорректной обработкой переменных окружения и определений функций. В текущих версиях bash переменная окружения именуется так же, как функция, а определение функции начинается со знаков “() {”. Уязвимость связана с тем, что bash не останавливается после обработки определения функции, а продолжает парсить код и выполнять команды оболочки, которые следуют дальше. Например, в переменной окружения

VAR=() { ignored; }; /bin/id

будет исполнен /bin/id при импорте окружения в процесс bash.

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

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Таким образом, переменную окружения с произвольным именем можно использовать как носителя для доставки на компьютер жертвы нужных команд. В данный момент наиболее опасным применением этого бага считают HTTP-запросы к скриптам CGI.

Уязвимости присвоен идентификатор CVE-2014-6271.

Два часа назад Чет Рэми (Chet Ramey), официальный мейнтейнер GNU bash, выложил официальные патчи.

http://ftp.gnu.org/pub/gnu/bash/bash-3.0-patches/bash30-017
http://ftp.gnu.org/pub/gnu/bash/bash-3.1-patches/bash31-018
http://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052
http://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-039
http://ftp.gnu.org/pub/gnu/bash/bash-4.1-patches/bash41-012
http://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-048
http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-025

Уязвимость обнаружил несколько дней назад Стефан Чазелас (Stephane Chazelas).



10 комментариев

  1. 25.09.2014 at 00:04

    а как грамотно пропатчить?

  2. 25.09.2014 at 10:00

    A KDE2 патчить нужно или FreeBSD не подвержена этой уязвимости?

  3. 25.09.2014 at 16:00

    Я сегодня плохо соображаю. В чём смысл выполнения команды в командной оболочке? Ведь её можно выполнить, просто набрав. Никак не разберу, в чём подвох. Тут повышение привелегий есть или не требуется залогинивание в систему? Как тогда переменные задать, не залогиниваясь?

    • 25.09.2014 at 18:39

      на хакере могут только бубунту в комментах хвалить. а что-то по делу отписать, да так чтоб кратко и ясно, не в силах

    • 26.09.2014 at 00:01

      Проблема в том, что некоторые программы, например apache+php могут задавать переменные среды в php сообразно запросам пользователя. Если такое есть в коде сервера — то воруй убивай и так далее, например.

Оставить мнение