Проблема безопасности, связанная со сбросом паролей по email, будет решена в следующем выпуске WordPress

Дата публикации:Май 7, 2017

Исследователь безопасности Дэвид Голунски из Legal Hackers опубликовал подробности уязвимости, связанной с неавторизированным сбросом паролей в WordPress. Дэвид показал, как при определенных обстоятельствах злоумышленник может перехватить email для сброса пароля и получить доступ к пользовательскому аккаунту.

Идея заключается в следующем: используется переменная SERVER_NAME для получения имени хоста сервера, чтобы создать заголовок From/Return-Path для исходящего email на сброс пароля.

Крупные веб-серверы, такие как Apache, по умолчанию вносят в переменную SERVER_NAME имя хоста, предоставленное клиентом (в заголовке HTTP_HOST):

https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

Поскольку SERVER_NAME можно менять, злоумышленник способен устанавливать в эту переменную произвольный домен по своему усмотрению:

attackers-mxserver.com

и в итоге $from_email будет установлен в:

wordpress@attackers-mxserver.com

Соответственно, исходящее письмо с From/Return-Path для сброса пароля придет на адрес злоумышленника.

Результаты данной атаки будут зависеть от серверной среды, определенной конфигурации почтового сервера, а также в некоторых случаях от взаимодействия с пользователем. Отчет Дэвида содержит более конкретные методы, которые могут быть использованы.

Сообщив об этой проблеме команде безопасности WordPress в июле 2016, а также опубликовав новость на сайте HackerOne, Дэвид не обнаружил никакой реакции, а потому решил обнародовать детали уязвимости публично.

И хотя официального патча пока не существует, Аарон Кэмпбелл из команды безопасности WordPress отметил, что проблема не столь серьезна, как может показаться.

«Эта проблема имеет низкий приоритет, но мы в курсе о ней и она есть в нашей очереди», — говорит Кэмпбелл. Он обрисовал условия, которые потребуются для того, чтобы она превратилась в серьезную уязвимость.

«Чтобы эта проблема повлияла на безопасность, сервер должен разрешать для пользовательских заголовков перезапись $_SERVER[‘SERVER_NAME’]», — говорит Аарон. – «Мы считаем, что это плохая серверная конфигурация (как, к примеру, вывод display_errors на работающем сайте), что, увы, мы не можем контролировать».

Кэмпбелл проверил свои личные серверы Apache и nginx, и везде перезапись была запрещена. В дополнение к плохо настроенному серверу, Аарон также выделил и другие ситуации, которые могут приводить к подобной угрозе безопасности:

  • Пользователь должен ответить на email со сбросом пароля
  • Автоответчик должен ответить на email и включить исходное письмо
  • Почтовый сервер был взломан или перегружен, и email был возвращен отправителю

«Если ваш сервер уязвим, и вы не можете поправить текущую конфигурацию, у вас все равно есть способ побороться с данной проблемой», — говорит Кэмпбелл. – «Небольшой PHP-код поможет вам задать статичный почтовый адрес отправителя по вашему выбору».

add_filter( 'wp_mail_from', function( $from_email ) { return 'wordpress@mysite.com'; } );

Аарон отметил, что исправление, скорее всего, не появится в будущем релизе безопасности, однако команда активно работает над ним. Если разработчики найдут хороший способ решить проблему, они обязательно поделятся им, как только проработают все возможные последствия.

Источник: wptavern.com

Поделиться

Один комментарий

  1. Evgen says:

    очень информативно и понятно. спасибо.

Оставить комментарий

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

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.