WPO365 | Плагин входа в систему для WordPress уязвим к подделке межсайтовых запросов в версиях до 43.2 включительно. Это связано с тем, что помощник Ajax_Service::verify_ajax_request() блокирует свой вызов wp_verify_nonce() за логической опцией 'enable_nonce_check', которая отсутствует в массиве 'wpo365_options' по умолчанию и поэтому оценивается как false через get_global_boolean_var(); в результате обработчик wp_ajax_wpo365_update_settings (Ajax_Service::update_settings) принимает POST-сообщения со страниц с разными источниками и перенаправляет предоставленную злоумышленником полезную нагрузку настроек (base64/JSON) в Options_Service::update_options(), которая объединяет каждый ключ/значение в wpo365_options без списка разрешенных ключей. Это позволяет неаутентифицированным злоумышленникам перезаписывать произвольные параметры плагина — включая включение конечной точки REST SCIM (enable_scim), установку известного злоумышленнику scim_secret_token и установку new_usr_default_role в значение «administrator» — с помощью поддельного запроса, если они могут обманом заставить администратора сайта выполнить такое действие, как нажатие на ссылку.
Показать оригинальное описание (EN)
The WPO365 | Login plugin for WordPress is vulnerable to Cross-Site Request Forgery in versions up to, and including, 43.2. This is due to the Ajax_Service::verify_ajax_request() helper gating its wp_verify_nonce() call behind the boolean option 'enable_nonce_check', which is absent from the default 'wpo365_options' array and therefore evaluates to false via get_global_boolean_var(); as a result, the wp_ajax_wpo365_update_settings handler (Ajax_Service::update_settings) accepts POSTs from cross-origin pages and forwards the attacker-supplied 'settings' payload (base64/JSON) to Options_Service::update_options(), which merges every key/value into wpo365_options without a key allowlist. This makes it possible for unauthenticated attackers to overwrite arbitrary plugin options — including enabling the SCIM REST endpoint (enable_scim), planting an attacker-known scim_secret_token, and setting new_usr_default_role to 'administrator' — via a forged request granted they can trick a site administrator into performing an action such as clicking on a link.
Характеристики атаки
Последствия
Строка CVSS v3.1