В корректирующем релизе [2] утилиты sudo 1.8.3p2, используемой для организации выполнения команд от имени других пользователей, исправлена очень опасная уязвимость [3]. Проблема вызвана ошибкой форматирования строки, которую может эксплуатировать любой пользователь, даже не упомянутый в настройках sudoers. Несмотря на то, что в публичном доступе пока не найдено готовых эксплоитов, потенциально уязвимость может привести к выполнению произвольных команд с правами пользователя root.
Проблема связана с появлением в sudo 1.8.0 нового отладочного режима, предназначенного для использования при разработке правил доступа или для создания плагинов для журналирования ввода/вывода. В функции sudo_debug() была допущена ошибка, связанная с использованием имени программы как части блока форматирования строки в fprintf(). Создав специально оформленную символическую ссылку на sudo и запустив утилиту по этой ссылке (или иными способами добившись подмены argv[0]), появляется возможность эксплуатации уязвимости.
Например:
$ ln -s /usr/bin/sudo ./%s $ ./%s -D9 Segmentation fault
Рекомендуется срочно обновить sudo 1.8.x до версии 1.8.3p2. Старые версии, младше релиза 1.8.0, выпущенного в феврале 2011 года, проблеме не подвержены (например, в Ubuntu 10.04 LTS используется 1.7.2p1, в Ubuntu 11.10 - 1.7.4p6, в Slackware - 1.7.4p6). В качестве временной меры защиты можно снять suid-флаг с исполняемого файла sudo. Для систем с поддержкой FORTIFY_SOURCE, например, NetBSD и большинство дистрибутивов Linux, можно пересобрать sudo, активировав в src/Makfile опцию "-D_FORTIFY_SOURCE=2". На момент написания новости обновления были доступны только для FreeBSD [4] и Gentoo. Пакет с sudo из состава Fedora 16 (возможно это касается и RHEL 6) изначально собран [5] с опцией D_FORTIFY_SOURCE=2, т.е. не подвержен эксплуатации. Статус выпуска обновлений для различных дистрибутивов можно проследить на данных страницах: Ubuntu [6], Gentoo [7], Slackware [8], Mandriva [9], openSUSE [10], CentOS [11], Scientific Linux [12], Fedora [13], RHEL [14] и Debian [15].
Ссылки:
[1] http://htfl.ru/cat-news-uyazvimosti-po
[2] /out.php?link=http://www.sudo.ws/sudo/news.html
[3] /out.php?link=http://www.sudo.ws/sudo/alerts/sudo_debug.html
[4] /out.php?link=http://www.vuxml.org/freebsd/
[5] /out.php?link=http://kojipkgs.fedoraproject.org/packages/sudo/1.8.3p1/2.fc16/data/logs/x86_64/build.log
[6] /out.php?link=https://lists.ubuntu.com/archives/ubuntu-security-announce/2012-January/
[7] /out.php?link=http://www.gentoo.org/security/
[8] /out.php?link=http://www.slackware.com/security/list.php?l=slackware-security&y=2012
[9] /out.php?link=http://www.mandriva.com/en/security/advisories?dis=2011
[10] /out.php?link=http://lists.opensuse.org/opensuse-security-announce/2012-01/
[11] /out.php?link=http://lists.centos.org/pipermail/centos-announce/2012-January/thread.html
[12] /out.php?link=http://listserv.fnal.gov/scripts/wa.exe?A1=ind1201&L=scientific-linux-errata&T=0
[13] /out.php?link=https://admin.fedoraproject.org/updates/F16/security
[14] /out.php?link=http://rhn.redhat.com/errata/rhel-server-errata.html
[15] /out.php?link=http://www.debian.org/security/