В популярном почтовом сервере Exim обнаружены две опасные уязвимости, позволяющие удаленно выполнить код и вызвать отказ в обслуживании.
Исследователь безопасности под псевдонимом meh обнаружил две опасные уязвимости в популярном почтовом сервере Exim. Одна из уязвимостей является критической и позволяет удаленному злоумышленнику выполнить вредоносный код на целевом сервере.
CVE-2017-16943 представляет собой уязвимость использования после освобождения (use-after-free) и может быть проэксплуатирована злоумышленником для удаленного выполнения произвольного кода на SMTP-сервере путем создания последовательности команд BDAT. По словам исследователей, данная уязвимость может быть использована для удаленного выполнения кода, если двоичный файл не скомпилирован с помощью PIE (position-independent code, не зависящий от адреса код).
Исследователь также опубликовал PoC-эксплоит, написанный на Python, с помощью которого любой желающий может проэксплуатировать данную проблему на уязвимых серверах Exim.
Вторая уязвимость CVE-2017-16944 позволяет удаленно вызвать отказ в обслуживании сервера даже при отсутствии активного соединения. Данная уязвимость существует из-за неправильной проверки символа «.» в конце сообщений электронной почты при синтаксическом анализе заголовка данных BDAT.
«Функция receive_msg в receive.c в SMTP-демоне Exim 4.88 и 4.89 позволяет удаленным злоумышленникам вызвать отказ в обслуживании через векторы, включающие команды BDAT, и некорректную проверку символа «.», обозначающего конец содержимого, связанного с функцией bdat_getc ", - пояснил исследователь в описании уязвимости. Для данной проблемы специалист также опубликовал PoC-эксплоит.
Обе уязвимости затрагивают версии Exim 4.88 и 4.89. Исправленное обновление Exim 4.9 доступно на портале GitHub.
Exim - агент пересылки сообщений, используемый в операционных системах семейства Unix. Exim распространяется под лицензией GPL, и каждый может свободно скачать его, использовать и модифицировать.
Сбалансированная диета для серого вещества