Релиз почтового сервера Exim 4.73 с устранением уязвимостей

05.01.2011 21:17

Вышел релиз SMTP-сервера Exim 4.73, в котором устранены две критические уязвимости, обнаруженные в начале декабря. Уязвимости позволяют выполнить код злоумышленника и повысить свои привилегии в системе.

Ошибка, приводившая к первой уязвимости (CVE-2010-4344), была устранена в версии 4.70, но не была идентифицирована в то время как уязвимость, что привело к наличию проблемы безопасности в пакетах с Exim из состава дистрибутивов с увеличенным сроком поддержки, таких как Debian, RHEL и CentOS. Проблема была связана с возможностью вызова переполнения буфера в функции string_vformat и позволяла злоумышленнику выполнить код на сервере, через указание двух команд MAIL в пределах одной SMTP-сессии в сочетании с передачей огромного сообщения со специальным образом оформленными заголовками.

Вторая уязвимость (CVE-2010-4345), которая исправлена в текущем релизе, позволяла локальному злоумышленнику повысить свои привилегии в системе, через использования возможности по запуску пользователем exim процесса exim с альтернативным файлом конфигурации, в котором можно было указать произвольные команды в блоке spool_directory, которые могли быть выполнены с правами пользователя root. Например, запустив "exim -Ce.conf -q" в файле конфигурации e.conf можно указать выполнение произвольных операций "spool_directory = ${run{/bin/chown user:user /etc/shadow}}".

Кроме исправления уязвимостей, в новой версии представлено несколько мелких улучшений:

  • Задействован более новый Clam/AV API (zINSTREAM API) для организации фильтрации контента. Старый API можно включить путем сборки с опцией WITH_OLD_CLAMAV_STREAM=yes;
  • Улучшена поддержка OpenSSL: добавлена опция конфигурирования openssl_options, расширены средства диагностики проблем с SSL,
  • Дополнительные улучшения поддержки DKIM (DomainKeys Identified Mail). Не связанные с критическими проблемами ошибки DKIM более не направляются в paniclog;
  • Реализован оператор reverse_ip;
  • Добавлен отладочный режим в ACL ("debug");
  • Поддержка множественных условных правил над блоками "Router";
  • Блокирование запуска или сборки Exim от пользователя root;
  • Добавлена опция tcp_wrappers_daemon_name, позволяющая использовать имена процессов, отличные от "exim";
  • Удалены зависимости от определенной в стандарте C99 функции va_copy().