На сайте разработчиков Exim на прошлой неделе появилось сообщение о двух "багах" в версиях 4.88 и 4.89. Один из них, CVE-2017-16943 проявляется в некорректной обработке Exim BDAT-команд — специальных инструкций, регулирующих дробление email-сообщений на отдельные фрагменты ("chunking"). Из-за этой ошибки злоумышленник может запустить на сервере вредоносный код и в теории поставить систему под свой контроль.
Уязвимость выявил тайваньский исследователь под ником @mehqq_, член Devcore. Как выяснилось, он опубликовал и подробную информацию об уязвимости, и демонстрационный эксплойт в публичном баг-трекере Exim, поскольку разработчики не озаботились публикацией электронного адреса, на который можно было бы направлять данные об уязвимостях конфиденциально. Создатели Exim признали эту ошибку.
Вторая уязвимость, которую обнаружил @mehqq_, CVE-2017-16944 менее опасна, но позволяет производить DDoS-атаку и выводить почтовый сервер из строя.
В качестве промежуточной меры разработчики Exim предлагают установить в конфигурационном файле Exim пустое значение напротив строки "chunking_advertise_hosts =". Это заблокирует потенциальным злоумышленникам возможность применять ту же логику, которую представил в своем демонстрационном эксплойте обнаруживший уязвимости исследователь.
Патча ни для одной из этих уязвимостей пока нет. Разработчики Exim обещают в течение ближайших "дней или недель" выпустить версию 4.90, содержащую исправления.
"Это очередной безрадостный пример того, какую угрозу может представлять популярное ПО, используемое в базовой инфраструктуре Сети, — говорит Валерий Тюхменев, эксперт по информационной безопасности компании SEC Consult Services. — Популярное — не значит лишенное уязвимостей. Аудит таких разработок как Exim следует проводить регулярно. Еще хуже то, что информация о баге стала общим достоянием до появления патча. Теперь вполне можно ожидать массовых попыток эксплуатировать эти уязвимости со стороны киберкриминала".