Подписка на блог

12 заметок с тегом

почта

Критическая уязвимость в Exim, позволяющая выполнить код на сервере с правами root

В почтовом сервере Exim выявлена критическая уязвимость (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.

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

Исправление для прошлых версий, которые продолжают применяться в дистрибутивах, пока доступно только в виде патча. Корректирующие выпуски для прошлых веток с устранением проблемы запланированы на 11 июня. Обновления пакетов подготовлены для Debian, Ubuntu, openSUSE. Arch Linux и Fedora поставляют версию 4.92, в которой проблема не проявляется. RHEL и CentOS проблеме не подвержены, так как Exim не входит в их штатный репозиторий пакетов (при необходимости ставится из репозитория epel).

Как обновиться?
Для обновления необходимо подключиться к серверу по SSH под пользователем c правами root и последовательно выполнить приведённые ниже команды в терминале. Будьте осторожны — внеплановое обновление несёт определённые риски. Если сомневаетесь — поручите обновление администратору вашего сервера или обратитесь к нашим специалистам в рамках пакета поддержки.

На Centos

Убедитесь, что почтовый сервер установлен:

rpm -qa | grep exim

Результатом будет версия Exim: exim-4.88-3.el7.x86_64
Если версия ниже 4.92, выполните обновление:

yum update exim

Перезапустите почтовый сервер:

service exim restart

На Debian или Ubuntu

Убедитесь, что exim установлен:

dpkg -l | grep exim

Выполните обновление:

apt-get update && apt-get install exim4

Перезапустите почтовый сервер:

service exim4 restart

После обновления в профилактических целях смените все пароли на сервере: root, обычных пользователей, пароли баз данных, почты и др.

Как понять, что сервер взломан?
Проверьте запущенные процессы командой top
На заражённых серверах наблюдается 100%-я нагрузка, создаваемая процессом [kthrotlds] Также в планировщике cron добавляется задание с ограничением прав на редактирование.

Что делать, если сервер уже взломали?
Самый безопасный способ — перенос данных на новый виртуальный сервер с Centos 7 или Ubuntu 16/18 — на этих ОС при установке с ISPmanager автоматически устанавливается последняя версия Exim.

Менее безопасный — обновить на сервере Exim, сменить все пароли, выполнить проверку и чистку сервера от вирусов — самостоятельно или с помощью профильных специалистов. В теории это может помочь — но нет гарантий, что злоумышленники не спрятали бэкдоров для повторных заражений.

Обновление статистики

Обновлен раздел Статистика

Входящие письма — https://himich.com/stat/email/
У меня сотни фильтров и папок для почты. Если вы написали мне больше десяти писем, я а не ответил, значит вы удостоились высочайшей чести — я занес вас в фильтр «чайники» и все ваши письма пометятся как прочитанные до того, как я их увижу.
Мой адрес — en@himich.com. Я читаю все письма, другой вопрос — зачем они мне? У меня нет помощников, я достаточно быстро печатаю, я не отвечаю на письма без знаков вопроса, я не отвечаю на письма, не требующие ответа, я не отвечаю тем, кто пишет только для того, чтобы я ответил.

Часы сна — https://himich.com/stat/sleep/
Количество часов сна в ночное и дневное время суток.
Данные экспортированы с instagram.com/day.himich/.
Ваши предложения и замечания направляйте по адресу en@himich.com.

Путешествия — https://himich.com/travel/fresh/

от Жеки

Меня бесит, когда люди в теме письма пишут «от Жеки». Где-то так:

От: Жека
Тема: от Жеки

Считается, что письмо с пустым subject’ом — это типа плохо?

бесит, отношение, письмо, почта, тема

Статистика

Обновлен раздел «Статистика» — http://himich.com/stat/

Часы сна — http://himich.com/stat/sleep/
Количество часов сна в ночное и дневное время суток.
Данные экспортированы с instagram.com/himich.day/ (обновление раз в сутки).
Ваши предложения и замечания направляйте по адресу en@himich.com.

Входящие письма — http://himich.com/stat/email/
У меня сотни фильтров и папок для почты. Если вы написали мне больше десяти писем, я а не ответил, значит вы удостоились высочайшей чести — я занес вас в фильтр «чайники» и все ваши письма пометятся как прочитанные до того, как я их увижу.

Мой адрес — en@himich.com. Я читаю все письма, другой вопрос — зачем они мне? У меня нет помощников, я достаточно быстро печатаю, я не отвечаю на письма без знаков вопроса, я не отвечаю на письма, не требующие ответа, я не отвечаю тем, кто пишет только для того, чтобы я ответил.

Самое время

Нет более подходящего времени для смс информирования.

 Нет комментариев    27   2018   время   почта   смс   утро

Apple Pencil в iOS 11

На перечисленных выше многочисленных улучшениях iOS 11 для iPad в Apple решили не останавливаться. Стилус Apple Pencil с приходом iOS 11 стал более универсальным инструментом. Карандаш научился делать быстрые отметки в PDF-файлах и на скриншотах, создавать заметки прямо на экране блокировки и рисовать в таких приложениях, как «Заметки» и «Почта».

Яндекс.Почта

Сегодня Я.Почта обновила дизайн, я был приятно удивлен.

Юзаем.

Конфидициальность

Я придумал как проверить конфедициальность своей почты. Что-то надо скомпрометироваться и посмотреть через сколько это всплывёт.

Яндекс.Почта

Сегодня обнаружил, что Яндекс изменил дизайн интерфейса Яндекс Почты.

Круто сделано.

Пользуйтесь — http://mail.himich.com

Ранее Ctrl + ↓
Реклама за 1 500 ₽ / месяц