Плагин Frontend Admin от DynamiApps для WordPress уязвим к повышению привилегий во всех версиях до 3.29.9 включительно. Уязвимость существует потому, что `ActionUser::conditions_logic()` пропускает проверку авторизации `current_user_can('edit_user', $user_id)` за тестом `is_numeric()`, в результате чего проверка полностью пропускается, если `$user_id` является нечисловой строкой — условие, которое может быть вызвано передачей созданного значения, такого как `1one`, через непроверенный параметр `item_id` неаутентифицированная конечная точка AJAX `wp_ajax_nopriv_frontend_admin/forms/change_form`. Это позволяет злоумышленникам повысить привилегии администратора, получив подписанную сервером полезную нагрузку `_acf_objects`, содержащую нечисловой идентификатор пользователя, который WordPress впоследствии приводит к целому числу 1 (администратор по умолчанию), позволяя злоумышленнику перезаписать пароль или адрес электронной почты этой учетной записи.
Для использования неаутентифицированными пользователями требуется настроить общедоступную пользовательскую форму; во всех остальных случаях достаточно учетной записи на уровне подписчика.
Показать оригинальное описание (EN)
The Frontend Admin by DynamiApps plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.29.9. The vulnerability exists because `ActionUser::conditions_logic()` gates the `current_user_can('edit_user', $user_id)` authorization check behind an `is_numeric()` test, causing the check to be skipped entirely when `$user_id` is a non-numeric string — a condition that can be induced by passing a crafted value such as `1one` through the unvalidated `item_id` parameter of the unauthenticated `wp_ajax_nopriv_frontend_admin/forms/change_form` AJAX endpoint. This makes it possible for attackers to escalate privileges to administrator by obtaining a server-signed `_acf_objects` payload carrying the non-numeric user ID, which WordPress subsequently coerces to integer 1 (the default administrator), allowing the attacker to overwrite that account's password or email address. Exploitation by unauthenticated users requires a public-facing frontend user form to be configured; in all other cases a subscriber-level account is sufficient.
Характеристики атаки
Последствия
Строка CVSS v3.1