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

Сегодня были опубликованы детали об уязвимости в 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.

© Habrahabr.ru