Представлена [4] внеплановая порция обновлений Samba - 3.6.4 [5], 3.5.14 [6] и 3.4.16 [7], в которых устранена критическая уязвимость [8] (CVE-2012-1182), позволяющая удалённому злоумышленнику выполнить свой код с правами пользователя root. Для успешной эксплуатации уязвимости не требуется прохождение стадии аутентификации, атака может быть осуществлена анонимным не аутентифицированным злоумышленником при наличии доступа к сетевому порту Samba. По оценке разработчиков, выявленная проблема является одной из наиболее серьёзных уязвимостей за всю историю проекта.
Проблеме подвержены все версии Samba с 3.0.x по 3.6.3 включительно. Всем пользователям Samba рекомендуется в экстренном порядке провести обновление до представленных корректирующих выпусков. Для уже не поддерживаемых веток Samba подготовлены патчи [9]. Пакеты с устранением уязвимости пока недоступны, проследить выход обновлений для популярных дистрибутивов можно на данных страницах: FreeBSD [10], Ubuntu [11], Gentoo [12], Slackware [13], Mandriva [14], openSUSE [15], CentOS [16], Fedora [17], RHEL [18] и Debian [19]. Кроме патча обходного пути решения проблемы не найдено, можно только закрыть доступ к порту Samba. В качестве крайней меры можно ограничить доступ к порту для доверительных хостов при помощи опции "hosts allow" в smb.conf, но это не поможет от атаки с поддельного IP-адреса.
Уязвимость была выявлена участниками программы Zero Day Initiative, т.е. не исключено наличие 0-day эксплоита в диком виде. Примечательно, что на исправление ошибки потребовался почти месяц, о проблеме изначально было сообщено [20] ещё 15 марта. Проблема вызвана ошибкой в генераторе кода для механизма RPC (Remote Procedure Call), которая приводит к формированию небезопасного кода, участвующего в осуществлении передаваемых по сети RPC-вызовов. В результате ошибки проверка переменной через которую передаётся размер массива и проверка переменной с запрошенной под этот массив памятью производятся независимо друг от друга. Значение обеих переменных устанавливаются на стороне клиента и полностью контролируются им. Таким образом создаётся возможность передачи массива заведомо большего размера, чем может вместить выделенный под него буфер, что приведёт к наложению "хвоста" массива на другие структуры данных.
Ссылки:
[1] http://htfl.ru/cat-news-samba
[2] http://htfl.ru/cat-news-novosti-po
[3] http://htfl.ru/cat-news-obnovlenie-po
[4] /out.php?link=http://permalink.gmane.org/gmane.network.samba.announce/245
[5] /out.php?link=http://www.samba.org/samba/ftp/history/samba-3.6.4.html
[6] /out.php?link=http://www.samba.org/samba/ftp/history/samba-3.5.14.html
[7] /out.php?link=http://www.samba.org/samba/ftp/history/samba-3.4.16.html
[8] /out.php?link=http://www.samba.org/samba/security/CVE-2012-1182
[9] /out.php?link=http://www.samba.org/samba/history/security.html
[10] /out.php?link=http://www.vuxml.org/freebsd/
[11] /out.php?link=https://lists.ubuntu.com/archives/ubuntu-security-announce/2012-April/
[12] /out.php?link=http://www.gentoo.org/security/
[13] /out.php?link=http://www.slackware.com/security/list.php?l=slackware-security&y=2012
[14] /out.php?link=http://www.mandriva.com/en/security/advisories?dis=2011
[15] /out.php?link=http://lists.opensuse.org/opensuse-security-announce/2012-04/
[16] /out.php?link=http://lists.centos.org/pipermail/centos-announce/2012-April/thread.html
[17] /out.php?link=https://admin.fedoraproject.org/updates/F16/security
[18] /out.php?link=http://rhn.redhat.com/errata/rhel-server-errata.html
[19] /out.php?link=http://www.debian.org/security/
[20] /out.php?link=https://bugzilla.samba.org/show_bug.cgi?id=8815