Критическая уязвимость в конфигурациях Postfix, использующих SASL-библиотеку Cyrus

В почтовом сервере Postfix обнаружена одна из самых серьезных проблем безопасности за всю историю существования проекта. Уязвимость проявляется только при использовании 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, создание нового обработчика завершалось сбоем и последующие попытки аутентификации приводили к повреждению используемых другими подсистемами областей памяти.

1 S: 220 server.example.com ESMTP    
2 C: EHLO client.example.com     
3 S: 250-server.example.com     
4 S: ...other server output skipped...     
5 S: 250-AUTH DIGEST-MD5 LOGIN PLAIN CRAM-MD5     
6 S: 250-AUTH=DIGEST-MD5 LOGIN PLAIN CRAM-MD5     
7 S: ...other server output skipped...     
8 C: AUTH CRAM-MD5     
9 S: 334 PDg5ODE0OTI3MS4xMDQyMTg1OUBzZXJ2ZXIuZXhhbXBsZS5jb20+Cg==    
10 C: *    
11 S: 501 5.7.0 Authentication aborted    
12 C: AUTH DIGEST-MD5    
13 Connection closed by foreign host. 

           
   
Источник: http://www.opennet.ru/opennews/art.shtml?num=30495
Главная ссылка к новости — http://permalink.gmane.org/gmane.mail.p … nounce/127

Был, был и весь вышел...