Уязвимость, позволяющая получить контроль за WordPress через форму сброса пароля
В системе управления web-контентом WordPress выявлена уязвимость (CVE-2017-8295), позволяющая получить контроль за аккаунтом через манипуляции с формой сброса пароля. В частности, атакующий может без прохождения необходимой аутентификации организовать отправку владельцу аккаунта письма с кодом сброса пароля и подконтрольным email в поле отправителя (From/Return-Path). Проблема пока остается неисправленной и проявляется во всех версиях WordPress, включая самый свежий выпуск 4.7.4.
Возможность подстановки своего значения в поле отправителя вызвано тем, что WordPress формирует содержимое From и Return-Path на основе переменной $_SERVER['SERVER_NAME'], значение которой на большинстве http-серверов формируется на основе HTTP-заголовка "Host:", который передается во время запроса. Если сайт на базе WordPress является основным хостом в конфигурации http-сервера, то атакующий может отправить запрос к форме сброса пароля подставив в "Host:" имя подконтрольного хоста, который будет использован в составе адреса отправителя (wordpress@хост).
Для того чтобы получить код ссылки для сброса email необходимо, чтобы письмо, отправленное владельцу аккаунта, было перенаправлено по адресу отправителя. Например, можно организовать DoS-атаку на почтовый сервер пользователя и, отправив порцию крупных писем, добиться переполнения его почтового ящика или превышения квоты. В условиях когда ящик переполнен, сообщение с кодом сброса пароля будет возвращено отправителю с уведомлением о невозможности доставки. Еще одним вариантом является проведение атаки на пользователей, которые пользуются автоответчиками. Атакующему достаточно дождаться времени, когда будет активирован автоответчик (например, пользователь уедет в отпуск или командировку) и инициировать отправку письма с кодом сброса пароля, которое вернется по адресу отправителя с уведомлением от автоответчика.