The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Критическая уязвимость в Exim, позволяющая выполнить код на ..."
Отправлено opennews, 06-Июн-19 14:18 
В почтовом сервере Exim выявлена (https://www.openwall.com/lists/oss-security/2019/06/05/4) критическая уязвимость (http://www.exim.org/static/doc/security/CVE-2019-10149.txt) (CVE-2019-10149 (https://security-tracker.debian.org/tracker/CVE-2019-10149)), которая может привести к удалённому выполнению кода на сервере с правами root  при обработке специально оформленного запроса. Возможность эксплуатации проблемы отмечена в версиях с 4.87 по 4.91 включительно или при сборке с  опцией EXPERIMENTAL_EVENT.


В конфигурации по умолчанию атака может быть совершена без лишних усложнений локальным пользователем, так как применяется ACL "verify = recipient", выполняющий дополнительные проверки для внешних адресов. Совершение удалённой атаки возможно  при изменении настроек,  например, при работе в роли вторичного MX для другого домена, удалении ACL "verify = recipient" или определённых изменениях в local_part_suffix). Удалённая атака также возможна если злоумышленник сможет удержать соединение с сервером открытым в течение 7 дней (например, отправляя по одному байту в минуту для обхода обрыва по таймауту). При этом не исключается, что для удалённой эксплуатации проблемы существуют и более простые векторы атаки.

Уязвимость вызвана некорректной проверкой адреса получателя в функции deliver_message(), определённой в файле /src/deliver.c. Через манипуляцию с форматированием адреса атакующий может добиться подстановки своих данных в аргументы команды, вызываемой через функцию execv() с правами root. Для эксплуатации не требуется применение сложных техник, используемых при переполнениях буфера или повреждении памяти, достаточно просто подстановки символов.


Проблема связана с применением для преобразования адресов конструкции:

         deliver_localpart = expand_string(
                       string_sprintf("${local_part:%s}", new->address));
         deliver_domain =    expand_string(
                       string_sprintf("${domain:%s}", new->address));


Функция expand_string() является переусложнённым комбайном, в том числе распознающим команду "${run{команда аргументы}", приводящую к запуску внешнего обработчика. Таким образом, для атаки  в рамках SMTP-сеанса локальному пользователю  достаточно передать команду вида 'RCPT TO "username+${run{...}}@localhost"', где localhost один из хостов из списка local_domains, а username имя существующего локального пользователя.


Если сервер работает в качестве почтового релея достаточно удалённо отправить команду 'RCPT TO "${run{...}}@relaydomain.com"', где relaydomain.com один из хостов, перечисленных в секции настроек relay_to_domains. Так как по умолчанию в exim не применяется режим сброса привилегий (deliver_drop_privilege = false), переданные через "${run{...}}" команды будут выполнены с правами root.

Примечательно, что уязвимость была устранена (https://github.com/Exim/exim/commit/7ea1237c783e380d7bdb86c9...) в вышедшем в феврале выпуске 4.92 без акцентирования внимания на то, что исправление может привести к проблемам с безопасностью. Нет оснований полагать, что имело место осознанное сокрытие уязвимости разработчиками Exim, так как проблема была устранена в ходе исправления (https://bugs.exim.org/show_bug.cgi?id=2310) сбоя , возникающего при передаче некорректных адресов,  а уязвимость была выявлена компанией Qualys при проведении аудита изменений в Exim.


Исправление для прошлых версий, которые продолжают применяться в дистрибутивах, пока доступно только в виде патча (https://git.exim.org/exim.git/commit/d740d2111f189760593a303...). Корректирующие выпуски для прошлых веток с устранением проблемы запланированы на 11 июня. Обновления пакетов подготовлены для Debian (https://security-tracker.debian.org/tracker/CVE-2019-10149),  Ubuntu (https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2...), openSUSE (https://bugzilla.novell.com/show_bug.cgi?id=CVE-2019-10149). Arch Linux (https://www.archlinux.org/packages/community/x86_64/exim/) и Fedora (https://bodhi.fedoraproject.org/updates/FEDORA-2019-7b741dcaa4) поставляют версию 4.92, в которой проблема не проявляется. RHEL и CentOS проблеме не подвержены (https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-10149), так как Exim не входит в их штатный репозиторий пакетов.


URL: https://lists.exim.org/lurker/message/20190605.151853.84c1a7...
Новость: https://www.opennet.ru/opennews/art.shtml?num=50819

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру