Исследователи выявили критическую уязвимость в двух темах, использующихся на 90000 WordPress-сайтах, которая позволяла злоумышленникам получить полный контроль над сайтом.
Эксперт из команды WordFence Рамуэль Галл, выявивший уязвимость (и несколько других дыр) с начала апреля по начало мая в темах Jupiter и JupiterX, написал об этом свой пост.
Одна из уязвимостей, отмеченная как CVE-2022-1654 и оцененная в 9.9 по шкале опасности CVSS, позволяла любому «аутентифицированному злоумышленнику, включая подписчика или клиента, получить административные права доступа и полностью захватить работающий сайт, если на нем была активирована тема Jupiter или плагин JupiterX», — отметил Рамуэль. Плагин требуется для запуска темы JupiterX.
Затронутые версии: Jupiter 6.10.1 или ранее, JupiterX 2.0.7 или ранее.
Исследование со стороны WordFence было завершено 5 апреля, после чего в тот же день о найденных дырах было просигнализировано разработчику Jupiter и JupiterX – компании ArtBees. Потом была найдена еще одна дыра в теме Jupiter, и про нее было дополнительно сообщено разработчику 3 мая. К 10 мая создатели тем ArtBees выпустили обновленные версии Jupiter и JupiterX, в которых были устранены все недостатки.
Про критическую уязвимость
Обнаруженная критическая уязвимость была связана с функцией uninstallTemplate, которая предназначалась для сброса сайта после удаления шаблона. Однако с ее помощью можно было «повысить роль пользователя до администратора». В Jupiter эта функция была в самой теме; в JupiterX она была представлена в плагине JupiterX Core.
«В уязвимых версиях происходит регистрация AJAX-действий, но нет никаких проверок прав доступа или одноразовых значений nonce», — отметил Рамуэль.
Любой авторизованный пользователь, работающий с уязвимой версией установленной темы Jupiter, мог повысить свои привилегии до администратора путем отправки AJAX-запроса с параметром action, заданным как abb_uninstall_template. В итоге срабатывала функция uninstallTemplate, которая содержала вызов resetWordpressDatabase, после чего происходила переустановка сайта, а в качестве владельца сайта устанавливался текущий залогиненный пользователь.
Если же на сайте установлен плагин JupiterX Core, то в таком случае любой может получить доступ к аналогичному функционалу путем отправки AJAX-запроса с параметром action, заданным как jupiterx_core_cp_uninstall_template.
Про остальные уязвимости
Другие уязвимости, найденные Рамуэлем, имеют средний (CVE-2022-1656, CVE-2022-1658, CVE-2022-1659) и высокий (CVE-2022-1657) риск.
По словам Рамуэля, уязвимость с высоким риском, затрагивающая JupiterX Theme 2.0.6 или ранее и Jupiter Theme 6.10.1 или ранее, позволяет злоумышленнику получить приватную информацию, включая значения nonce, или выполнить запрещенные действия. Для этого потребуется добавить файлы и выполнить их из любого места на сайте.
«В уязвимых версиях тем Jupiter и JupiterX пользователи, вошедшие в систему, включая подписчиков, могут выполнять обход пути и производить LFI-атаки», — отмечает Рамуэль.
В теме JupiterX это делается путем использования AJAX-действия jupiterx_cp_load_pane_action, присутствующего в файле lib/admin/control-panel/control-panel.php, чтобы вызвать функцию load_control_panel_pane. «С помощью этого действия можно передавать любой локальный PHP-файл через параметр slug».
Тема Jupiter имеет идентичную уязвимость. Для этого используется AJAX-действие mka_cp_load_pane_action в framework/admin/control-panel/logic/functions.php, чтобы вызвать функцию mka_cp_load_pane_action.
Эксперты Wordfence советуют всем, кто работает с данными темами, немедленно обновить их до исправленных версий.
Источник: threatpost.com