Плагин LearnPress для WordPress уязвим для несанкционированного изменения произвольных параметров WordPress в версиях до 4.4.4 включительно с помощью действия AJAX Learnpress_create_page. Обработчик LP_Admin_Ajax::create_page() проверяет только возможность edit_pages и nonce wp_rest (оба доступны редакторам), затем считывает параметр field_name из запроса, не ограничивая его списком разрешений Learn_press_*, прежде чем передать его в качестве ключа опции в LP_Helper::create_page(), который вызывает update_option($key_option, $page_id). Это позволяет аутентифицированным злоумышленникам с доступом на уровне редактора и выше обновлять произвольные параметры WordPress до положительного целого числа (вновь созданного идентификатора страницы), позволяя выполнять такие действия, как изменение user_can_register на истинное значение для открытия общедоступной регистрации, повреждение active_plugins для взлома сайта или иное вмешательство в настройки всего сайта, обычно зарезервированные для администраторов.
Показать оригинальное описание (EN)
The LearnPress plugin for WordPress is vulnerable to unauthorized modification of arbitrary WordPress options in versions up to, and including, 4.4.4 via the learnpress_create_page AJAX action. The LP_Admin_Ajax::create_page() handler only checks the edit_pages capability and a wp_rest nonce (both available to Editors), then reads the field_name parameter from the request without restricting it to a learn_press_* allow-list before passing it as the option key to LP_Helper::create_page(), which calls update_option($key_option, $page_id). This makes it possible for authenticated attackers, with Editor-level access and above, to update arbitrary WordPress options to a positive integer (a newly created page ID), enabling actions such as flipping users_can_register to a truthy value to open public registration, corrupting active_plugins to break the site, or otherwise tampering with site-wide settings normally reserved for administrators.
Характеристики атаки
Последствия
Строка CVSS v3.1