Вышел тестовый эксплоит для уязвимости в
функции do_brk(), существующей в Linux. Уязвимость
существует в версиях ядра до 2.4.22
включительно.
Как оказалось параметры внутренней
функции do_brk() не проверялись на размер. Это
влекло за собой переполнение буфера.
Функция do_brk() используется для управления
памятью процесса. Таким образом, выполнив
переполнение буфера, злоумышленник может
выполнить любой код с root-правами. Это
происходит благодаря тому, что код
выполняется в ядерном уровне памяти. Для
полного представления о работе ядра (и
функции do_brk() в частности) рекомендую
почитать соответствующую литературу.
При компиляции эксплойта необходимо
указывать флаг –static.
В противном случае бинарник
будет убиваться по 11 сигналу.