Найдена критическая уязвимость в командном интерпретаторе bash

shellshock-bashВ командной оболочке bash, пользующейся популярностью в среде Linux, обнаружена критическая уязвимость, которая позволяет удаленно выполнить код. По десятибалльной шкале Национального Института стандартов и технологий США (NIST) брешь получила 10 баллов.

Уязвимость CVE-2014-6271 связана с некорректной обработкой переменных окружения и определений функций. Стоит отметить, что в используемых в настоящее время версиях 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

 

В связи с этим пользователям, самостоятельно администрирующим или поддерживающим серверы с установленной операционной системой на базе Linux, настоятельно рекомендуется обновить командный интерпретатор.

В Debian и Ubuntu это можно сделать командами:

sudo apt-get update
sudo apt-get install bash

В RedHat и CentOS:

yum update bash