Критическая уязвимость в Postfix

10/05/2011 10:46

В почтовом сервере Postfix обнаружена одна из самых серьезных проблем безопасности за всю историю существования проекта, сообщает opennet.ru. Уязвимость проявляется только при использовании Postfix совместно с SASL-библиотекой Cyrus и задействовании методов аутентификации, отличных от PLAIN, LOGIN и ANONYMOUS, например, проблема присутствует при использовании методов CRAM-MD5, DIGEST-MD5, EXTERNAL, GSSAPI, KERBEROS_V4, NTLM, OTP, PASSDSS-3DES-1 и SRP. Уязвимость не затрагивает код SMTP-клиента и проявляется только для сервера, в настройках которого активированы параметры "smtpd_sasl_auth_enable = yes" и "smtpd_sasl_type = cyrus". Разработчики не исключают возможность создания эксплоита, который позволит организовать выполнение кода злоумышленника на почтовом сервере с правами непривилегированного пользователя "postfix". Пользователь postfix ограничен в своих правах и не может влиять на работу рабочих процессов почтового сервера, но теоретически может быть использован для эксплуатации незакрытых системных уязвимостей. Поэтому для усиления защиты рекомендуется активировать в конфигурации функцию дополнительной изоляции рабочих процессов, через их помещение в chroot. В качестве временного решения проблемы, можно запретить использование методов аутентификации, отличных от PLAIN и LOGIN (в конфигурации Cyrus (smtpd.conf) нужно указать "mech_list: PLAIN LOGIN"). Уязвимость присутствует во всех версиях Postfix, выпущенных начиная с 13 марта 2000 года. Уязвимость исправлена в оперативно выпущенных обновлениях 2.5.13, 2.6.10, 2.7.4 и 2.8.3, а также в тестовых сборках Postfix 2.9, выпущенных начиная с 1 мая. Дополнительно подготовлены патчи для всех ранее выпущенных версий Postfix, начиная с релиза Postfix 1.1. Обновления с исправлением уязвимости уже выпущены для FreeBSD, но пока недоступны для Linux-дистрибутивов. Статус выхода исправлений можно отследить на следующих страницах: Slackware, Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Debian, Ubuntu. Уязвимость вызвана ошибкой, приводящей к выходу за допустимые границы памяти, в коде разработанного в недрах проекта патча для обеспечения работы SASL на базе библиотеки Cyrus. Ошибка проявляется в случае, если после сбоя аутентификации, в рамках той же сессии осуществлена попытка использования другого метода аутентификации. Проблема связана с тем, что в соответствии с рекомендациями по использованию кода Cyrus SASL, в случае сбоя аутентификации необходимо инициализировать новый обработчик, который следует использовать для обслуживания следующего запроса клиента. В ситуации с Postfix, создание нового обработчика завершалось сбоем и последующие попытки аутентификации приводили к повреждению используемых другими подсистемами областей памяти.
Описание уязвимости