Плагин Solace Extra для WordPress уязвим к несанкционированному изменению и потере данных из-за отсутствия проверки возможностей функции import_zip() в версиях до 1.6.0 включительно. Обработчик зарегистрирован как в wp_ajax_action-import-zip, так и в wp_ajax_nopriv_action-import-zip и проверяет только одноразовый номер «ajax-nonce», который генерируется на каждой странице администратора через wp_localize_script (неограниченный крючок admin_enqueue_scripts) и, следовательно, доступен любому аутентифицированному пользователю, включая подписчиков. Это позволяет аутентифицированным злоумышленникам с доступом на уровне подписчика и выше стирать навигационные меню, виджеты боковой панели (с помощью update_option('sidebars_widgets', array())), все моды тем (с помощью remove_theme_mods()) и шаблоны Elementor, а также запускать произвольный импорт демо-контента.
Показать оригинальное описание (EN)
The Solace Extra plugin for WordPress is vulnerable to unauthorized modification and loss of data due to a missing capability check on the import_zip() function in versions up to, and including, 1.6.0. The handler is registered on both wp_ajax_action-import-zip and wp_ajax_nopriv_action-import-zip and only verifies the 'ajax-nonce' nonce, which is emitted on every admin page via wp_localize_script (unrestricted admin_enqueue_scripts hook) and is therefore accessible to any authenticated user including Subscribers. This makes it possible for authenticated attackers, with Subscriber-level access and above, to wipe navigation menus, sidebar widgets (via update_option('sidebars_widgets', array())), all theme mods (via remove_theme_mods()), and Elementor templates, as well as trigger arbitrary demo-content imports.
Характеристики атаки
Последствия
Строка CVSS v3.1