Обновление Exim 4.94.2 с устранением 10 удалённо эксплуатируемых уязвимостей

Опубликован выпуск почтового сервера Exim 4.94.2 с устранением 21 уязвимости (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), которые выявлены компанией Qualys и представлены под кодовым именем 21Nails. 10 проблем могут быть эксплуатированы удалённо (в том числе для выполнения кода с правами root), через манипуляции с SMTP-командами при взаимодействии с сервером.

Проблемам подвержены все версии Exim, история которых отслеживается в Git с 2004 года. Для 4 локальных уязвимостей и 3 удалённых проблем подготовлены рабочие прототипы эксплоитов. Эксплоиты для локальных уязвимостей (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) позволяют поднять свои привилегии до пользователя root. Две удалённые проблемы (CVE-2020-28020, CVE-2020-28018) позволяют без аутентификации выполнить код с правами пользователя exim (затем можно получить доступ root, эксплуатировав одну из локальных уязвимостей).

Уязвимость CVE-2020-28021 позволяет сразу удалённо выполнить код с правами root, но требует аутентифицированного доступа (пользователь должен установить аутентифицированный сеанс, после чего может эксплуатировать уязвимость через манипуляции с параметром AUTH в команде MAIL FROM). Проблема вызвана тем, что атакующий может добиться подстановки строки в заголовок spool-файла из-за записи значения authenticated_sender без должного экранирования спецсимволов (например, передав команду «MAIL FROM:<> AUTH=Raven+0AReyes»).

Дополнительно отмечается, что ещё одна удалённая уязвимость CVE-2020-28017 пригодна для эксплуатации для выполнения кода с правами пользователя «exim» без аутентификации, но требует наличия более 25 ГБ памяти. Для остальных 13 уязвимостей потенциально также могут быть подготовлены эксплоиты, но работа в этом направлении пока не проводилась.

Разработчики Exim были уведомлены о проблемах ещё в октябре прошлого года и потратили более 6 месяцев на разработку исправлений. Всем администраторам рекомендовано срочно обновить Exim на своих почтовых серверах до версии 4.94.2. Все версии Exim до выпуска 4.94.2 объявлены устаревшими (obsolete). Публикация новой версии была скоординирована с дистрибутивами, которые одновременно опубликовали обновления пакетов: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE и Fedora. RHEL и CentOS проблеме не подвержены, так как Exim не входит в их штатный репозиторий пакетов (в EPEL обновление пока отсутствует).

Удалённые уязвимости:

  • CVE-2020-28017: Целочисленное переполнение в функции receive_add_recipient();
  • CVE-2020-28020: Целочисленное переполнение в функции receive_msg();
  • CVE-2020-28023: Чтение из области вне выделенного буфера в функции smtp_setup_msg();
  • CVE-2020-28021: Подстановка новой строки в заголовок спул-файла;
  • CVE-2020-28022: Запись и чтение в области вне выделенного буфера в функции extract_option();
  • CVE-2020-28026: Усечение и подстановка строки в функции spool_read_header();
  • CVE-2020-28019: Сбой при сбросе указателя на функцию после возникновения ошибки BDAT;
  • CVE-2020-28024: Переполнения через нижнюю границу буфера в функции smtp_ungetc();
  • CVE-2020-28018: Обращение к буферу после его освобождения (use-after-free) в tls-openssl.c
  • CVE-2020-28025: Чтение из области вне выделенного буфера в функции pdkim_finish_bodyhash().

Локальные уязвимости:

  • CVE-2020-28007: Атака через символическую ссылку в каталоге с логом Exim;
  • CVE-2020-28008: Атаки на каталог со спулом;
  • CVE-2020-28014: Создание произвольного файла;
  • CVE-2021-27216: Удаление произвольного файла;
  • CVE-2020-28011: Переполнение буфера в функции queue_run();
  • CVE-2020-28010: Запись за границу буфера в функции main();
  • CVE-2020-28013: Переполнение буфера в функции parse_fix_phrase();
  • CVE-2020-28016: Запись за границу буфера в функции parse_fix_phrase();
  • CVE-2020-28015: Подстановка новой строки в заголовок спул-файла;
  • CVE-2020-28012: Отсутствие флага close-on-exec для привилегированного неименованного канала;
  • CVE-2020-28009: Целочисленное переполнение в функции get_stdinput().



Источник: opennet.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *