Несколько часов назад в списке рассылки 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).
25.09.2014 в 00:04
а как грамотно пропатчить?
25.09.2014 в 08:41
Обновиться с оф. репозитория.
http://dukebarman.pro
25.09.2014 в 15:06
увы, патч пока что можно обойти.
25.09.2014 в 10:00
A KDE2 патчить нужно или FreeBSD не подвержена этой уязвимости?
25.09.2014 в 10:37
А что, на #anime так и не ответили? 🙂
25.09.2014 в 15:58
Ну так ты протестируй и скажи нам.
25.09.2014 в 16:00
Я сегодня плохо соображаю. В чём смысл выполнения команды в командной оболочке? Ведь её можно выполнить, просто набрав. Никак не разберу, в чём подвох. Тут повышение привелегий есть или не требуется залогинивание в систему? Как тогда переменные задать, не залогиниваясь?
25.09.2014 в 18:39
на хакере могут только бубунту в комментах хвалить. а что-то по делу отписать, да так чтоб кратко и ясно, не в силах
26.09.2014 в 00:01
Проблема в том, что некоторые программы, например apache+php могут задавать переменные среды в php сообразно запросам пользователя. Если такое есть в коде сервера — то воруй убивай и так далее, например.
26.09.2014 в 11:44
Хм. А зачем веб-серверу могут понадобиться переменные среды? Странная практика.