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

Доказательство концепции использует WordPress с помощью переменного НАЗВАНИЕ СЕРВЕРА чтобы получить имя хоста сервера для создания заголовка С / Return-Path исходящий пароль сбрасывается по электронной почте.

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

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

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

Attackers-mxserver.com

Что даст WordPress конфигурацию $ from_email для

[электронная почта защищена]

И поэтому вызывает исходящие сообщения электронной почты с путем возврата / возврата на этот вредоносный адрес.

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

После сообщения о проблеме команде безопасности WordPress в июле 2016 года, а также через Веб-сайт HackerOne, Голунски не увидел прогресса и решил публиковать сведения об уязвимости для общественности.

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

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

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

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

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

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

add_filter ('wp_mail_from', функция ($ from_email) {return '[электронная почта защищена]«; });

Кэмпбелл сказал, что любые изменения, которые WordPress вносит в ядро, скорее всего, будут происходить через тикет, который в настоящее время отслеживает проблему без каких-либо аспектов безопасности. Он сказал, что исправление вряд ли появится в следующем выпуске безопасности, но команда активно работает над этим. Кэмпбелл сказал, что если они найдут хорошее решение проблемы, они поделятся им, как только разберутся со всеми потенциальными последствиями.

А ты ? Что вы думаете об этой уязвимости?