Разработчики почтового сервера Exim выпустили экстренное обновление Exim 4.82.1, в котором устранена критическая уязвимость (CVE-2014-2957), позволяющая удалённому злоумышленнику организовать выполнение кода на сервере. Проблема проявляется только в ветке Exim 4.82 при сборке с опцией EXPERIMENTAL_DMARC, которая не применяется умолчанию. Степень сложности эксплуатации оценена как тривиальная - достаточно отправить на сервер письмо со специально оформленным заголовком "From".

Всем пользователям Exim следует убедиться, что на их сервере для проверки валидности почтового домена отправителя не применяется DMARC. Обновления с исправлением уязвимости в настоящий момент пока не доступны для дистрибутивов, в основном из-за сборки пакетов без DMARC. Возможность использования опции EXPERIMENTAL_DMARC при сборке предоставлялась только в Gentoo, FreeBSD, OpenBSD и DragonFlyBSD.

Проблема была выявлена неназванной компанией, использующей Exim в своей практике, и без публичной огласки в пятницу сообщена разработчикам Exim. Разработчики Exim подготовили патч и через несколько дней его тестирования на рабочих серверах сформировали корректирующий выпуск. Интересно, что в ветке Exim 4.80 полтора года назад была выявлена похожая по степени опасности уязвимость, проявляющаяся в конфигурациях с DKIM.

Если в случае с DKIM, уязвимость возникла из-за отсутствия достаточной проверки данных, возвращаемых удалённым DNS-сервером, то проблема в DMARC связана с некорректным разбором содержимого заголовка "From". В частности, для разбора заголовка "From" использовалась внутренняя функция expand_string(), которая поддерживает интерпретацию конструкций языка конфигурации Exim. Передача поступающих от пользователя данных в expand_string() по своей сути близка к передаче таких данных для обработки в shell.

Источник: http://www.opennet.ru/opennews/art.shtml?num=39877