Плагин Custom User Registration Fields for WooCommerce для WordPress уязвим к повышению привилегий в версиях до 2.2.3 включительно. Это связано с тем, что плагин принимает контролируемое злоумышленником значение afreg_select_user_role из неаутентифицированного запроса WooCommerce Store API /wc/store/v1/checkout в функции af_reg_checkout_data_to_order_meta_data_block(), сохраняет его в мета-заказе, а затем передает его непосредственно WP_User::add_role() в af_reg_custom_order_processing_function() (подключена к woocommerce_thankyou) без проверки на соответствие списку разрешенных ролей, настроенному администратором плагина. Это позволяет злоумышленникам, не прошедшим проверку подлинности, повысить свои права до администратора, создав учетную запись во время оформления заказа с измененным телом JSON, указав администратора (или любой другой фрагмент роли) в качестве желаемой роли.
Примечание. Эксплойт требует включения параметра «Выбор роли пользователя».
Показать оригинальное описание (EN)
The Custom User Registration Fields for WooCommerce plugin for WordPress is vulnerable to Privilege Escalation in versions up to, and including, 2.2.3. This is due to the plugin accepting an attacker-controlled afreg_select_user_role value from the unauthenticated WooCommerce Store API /wc/store/v1/checkout request in the af_reg_checkout_data_to_order_meta_data_block() function, persisting it in order meta, and then passing it directly to WP_User::add_role() in the af_reg_custom_order_processing_function() function (hooked to woocommerce_thankyou) without validating against the plugin's admin-configured allowed role list. This makes it possible for unauthenticated attackers to elevate their privileges to Administrator by creating an account during checkout with a modified JSON body specifying administrator (or any other role slug) as the desired role. Note: The exploit requires the "User Role Selection" setting to be enabled.
Характеристики атаки
Последствия
Строка CVSS v3.1