Плагин RockPress для WordPress уязвим к отсутствию авторизации во всех версиях до 1.0.17 включительно. Это связано с отсутствием проверок возможностей нескольких действий AJAX (rockpress_import, rockpress_import_status, rockpress_last_import, rockpress_reset_import и rockpress_check_services) в сочетании с тем, что nonce плагина предоставляется всем аутентифицированным пользователям через безусловно поставленный в очередь сценарий администратора. Плагин ставит сценарий «rockpress-admin» в очередь на всех страницах администрирования (включая Profile.php) без каких-либо ограничений страниц или возможностей, а одноразовый номер для действия «rockpress-nonce» передается этому сценарию через wp_localize_script.
Поскольку обработчики AJAX только проверяют этот nonce и не проверяют current_user_can(), любой аутентифицированный пользователь, включая подписчиков, может извлечь nonce из HTML-источника любой страницы администратора и использовать его для запуска импорта, сброса данных импорта (удаления параметров), проверки подключения службы и чтения информации о статусе импорта. Это позволяет прошедшим проверку подлинности злоумышленникам с доступом на уровне подписчика и выше запускать ресурсоемкие операции импорта, сбрасывать данные отслеживания импорта и выполнять проверки системных подключений, которые должны быть доступны только администраторам.
Показать оригинальное описание (EN)
The RockPress plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 1.0.17. This is due to missing capability checks on multiple AJAX actions (rockpress_import, rockpress_import_status, rockpress_last_import, rockpress_reset_import, and rockpress_check_services) combined with the plugin's nonce being exposed to all authenticated users via an unconditionally enqueued admin script. The plugin enqueues the 'rockpress-admin' script on all admin pages (including profile.php) without any page or capability restrictions, and the nonce for the 'rockpress-nonce' action is passed to this script via wp_localize_script. Since the AJAX handlers only verify this nonce and do not check current_user_can(), any authenticated user, including Subscribers, can extract the nonce from any admin page's HTML source and use it to trigger imports, reset import data (deleting options), check service connectivity, and read import status information. This makes it possible for authenticated attackers, with Subscriber-level access and above, to trigger resource-intensive import operations, reset import tracking data, and perform system connection checks that should be restricted to administrators.
Характеристики атаки
Последствия
Строка CVSS v3.1