CVE-2014-6271, CVE-2014-7169: удалённое выполнение кода в Bash

в 16:08, , рубрики: bash, security, vulnerability, информационная безопасность

Сегодня были опубликованы детали об уязвимости в Bash.
Вкратце, Bash позволяет экспортировать функции как переменные окружения:

$ myfunc() { echo "Hello"; }
$ export -f myfunc
$ env | grep -A1 ^myfunc
myfunc=() {  echo "Hello"
}

Уязвимость состоит в том, что если после тела функции (после последнего символа "}") добавить ещё какую-нибудь команду, и экспортировать её — она будет выполнена при вызове дочернего интерпретатора:

$ env x='() { :; }; echo "Oh..."' /bin/bash -c /sbin/nologin
Oh...
This account is currently not available.

Это, в свою очередь, позволяет делать интересные вещи — например, если у вас есть CGI-скрипт на Perl, который вызывает Bash — атакующий может сконструировать HTTP-пакет, который будет содержать вредоносный код. Этот код через переменные окружения попадёт в Bash — и будет выполнен.

Уязвимы все версии Bash, включая bash-3.0.
В определённых кругах уязвимость прозвали «Bashdoor» — оно и неудивительно.

Больше деталей можно легко нагуглить по идентификатору CVE.

UPD 2014-09-24: некоторые «индусские» секурити-блоги приписывают «privilege escalation» к названию уязвимости. Это неправда — никакого повышения привилегий, код выполняется с правами того же юзера, под которым бежит «родительский» шелл.
В Твиттере уязвимость окрестили shellshock.

UPD 2014-09-25: фикс для CVE-2014-6271 оказался неполным, новой уязвимости присвоен идентификатор CVE-2014-7169. Детали есть в комментариях к посту.

Автор: br0ziliy

Источник

Поделиться