Критическая уязвимость в WordPress-плагинах Jupiter грозит угоном сайта

Критическая уязвимость в WordPress-плагинах Jupiter грозит угоном сайта

Критическая уязвимость в WordPress-плагинах Jupiter грозит угоном сайта

Аналитики из Wordfence выявили ряд уязвимостей в темах и плагинах Jupiter для WordPress (разработчик ArtBees). Одна из проблем позволяет после авторизации повысить привилегии до уровня администратора; степень опасности оценена в 9,9 балла из 10 возможных по шкале CVSS.

Мощные билдеры Jupiter используют более 148 тыс. клиентов из разных стран; с их помощью построены многие популярные блоги, интернет-платформы и магазины. Найденные уязвимости были полностью пропатчены 10 мая, пользователям рекомендуется как можно скорее обновить продукты до последней версии.

Согласно Wordfence, критическая дыра CVE-2022-1654 присутствует в Jupiter Theme 6.10.1 и ниже, а также во всех сборках плагина JupiterX Core до 2.0.6 включительно. Уязвимость проявляется при выполнении функции uninstallTemplate, выполняющей сброс базы данных сайта после деинсталляции шаблона. При этом происходит переустановка сайта, владельцем которого назначается текущий пользователь.

Уязвимая функция вызывается с помощью запроса AJAX с параметром action, заданным как abb_uninstall_template — или jupiterx_core_cp_uninstall_template в случае с JupiterX Core. Поскольку никаких проверок полномочий предусмотрено не было, злоумышленник мог получить админ-доступ к сайту и изменить его содержимое, внедрить вредоносный скрипт или попросту удалить весь контент.

Остальные уязвимости, найденные в Jupiter Theme, JupiterX Theme и JupiterX Core, менее опасны:

  • CVE-2022-1657 (8,1 балла CVSS) — обход каталога и возможность использования локальных файлов (local file inclusion, LFI); позволяет получить доступ к информации ограниченного пользования и совершать действия вне рамок своих полномочий;
  • CVE-2022-1656 (6,5 балла CVSS) — слабый контроль доступа, позволяющий деактивировать любой плагин и изменить настройки; грозит снижением безопасности сайта и нарушением нормального функционирования;
  • CVE-2022-1658 (6,5 балла) — слабый контроль доступа, позволяющий удалить любой плагин;
  • CVE-2022-1659 (6,3 балла) — раскрытие конфиденциальной информации (настройки сайта, данные о совершивших вход юзерах), возможность модификации постов, отказ в обслуживании (DoS).

Эксплойт во всех случаях тоже требует аутентификации, то есть его может провести любой подписчик или зарегистрированный пользователь. Полнофункциональные патчи включены в состав сборок Jupiter Theme 6.10.2, JupiterX Theme 2.0.7 и JupiterX Core 2.0.8.

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

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

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

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

RSS: Новости на портале Anti-Malware.ru