Опасная уязвимость в sudo позволяет получить root-доступ

Специалисты по компьютерной безопасности бьют тревогу. Версии sudo с 1.8.0 по 1.8.3p1 включительно содержат опасную уязвимость, которая может быть использована злоумышленниками для повышения своих полномочий в системе до полномочий суперпользователя.

Ошибка класса format string содержится в функции sudo_debug(). Это означает, что перед вызовом стандартной функции fprintf() не проверяются значения ее аргументов. Злоумышленник может передать специальный символ «%s» и вызвать некорректную работу fprintf(). Вот как это выглядит на практике:

$ ln -s /usr/bin/sudo ./%s
$ ./%s -D9
Segmentation fault

Очевидно, что злоумышленники будут стараться вызвать не Segmentation fault, а подготовить аргументы функции таким образом, чтобы передать управление вредоносному коду. Учитывая, что sudo работает от имени root, последствия могут быть очень серьезными.

Проблема решается путем установки с официального сайта sudo специальной заплатки с последующей перекомпиляцией исходного кода программы. sudo версии 1.8.3p2 уже не содержит ошибку. Пользователям, предпочитающим ничего самостоятельно не компилировать остается дожидаться официальных обновлений для своего дистрибутива.