Критическая уязвимость в open-source-библиотеке PHPMailer, связанная с обработкой входных данных, актуальна для миллионов сайтов, работающих на WordPress, Drupal и Joomla.

Эту брешь обнаружил участник сообщества Legal Hackers Давид Голунский (Dawid Golunski). По словам исследователя, уязвимость открывает возможность для удаленного исполнения кода в контексте пользователя веб-сервера и, как следствие, компрометации целевого веб-приложения. Аутентификации для эксплойта в данном случае не требуется.

Данная уязвимость, которой был присвоен идентификатор CVE-2016-10033, вызвана некорректностью обработки веб-форм, используемых для регистрации на сайте, отправки email-сообщений, получения обратной связи. Выполнять такие задачи зачастую помогает пакет PHPMailer, который в настоящее время, по оценкам, установлен на 9 млн сайтов. Со слов Голунского, CVE-2016-10033 присутствует во всех прежних версиях PHPMailer.

«Для эксплуатации уязвимости можно использовать такие общеупотребительные компоненты, как форма для контакта/обратной связи, регистрационная форма, механизмы для сброса пароля, отправки email с помощью уязвимой версии класса PHPMailer и т.п.», — пишет Голунский в бюллетене.

Отчет об уязвимости был направлен разработчикам PHPMailer на прошлой неделе. В субботу вышло обновление (PHPMailer 5.2.18) с патчем, и в воскресенье Голунский опубликовал скромный бюллетень, позднее добавив к нему описание PoC-эксплойта. Соответствующие предупреждения опубликовали WordPress и Drupal. «Обычно проект Drupal не издает бюллетени для библиотек сторонней разработки, — пишут участники проекта. — Однако из-за крайней критичности данной уязвимости, которая к тому же быстро стала известной, мы решили опубликовать объявление, чтобы предупредить операторов сайтов на Drupal, которые потенциально могут быть затронуты». Кроме названных платформ проблема касается также 1CRM, SugarCRM и Yii.

PoC-эксплойт к CVE-2016-10033, созданный Голунским, позволяет удаленно исполнить код. За основу концепции был взят тот факт, что PHPMailer допускает использование недостоверного адреса отправителя. Это позволяет внедрять произвольные опции в командную строку Sendmail в контексте PHPMailer. Проверку подлинности Sendmail осуществляет в соответствии со спецификациями RFC 3696, которые в некоторых случаях допускают использование кавычек и других нестандартных знаков в email-адресе. При отсутствии надлежащей проверки эти знаки могут быть интерпретированы как аргументы командной строки.

Голунский пообещал дать более полное описание векторов атаки и техник эксплойта, когда большинство сайтов и платформ будут пропатчены.

Категории: Уязвимости