Плагин Dokan для WordPress уязвим к повышению привилегий во всех версиях до 5.0.1 включительно. Это связано с отсутствием проверки авторизации в контроллере REST `CustomersController` (`includes/REST/CustomersController.php`), который перерегистрирует маршруты CRUD клиентов WooCommerce в пространстве имен `/dokan/v1/customers/` и заменяет встроенную проверку возможностей WooCommerce `manage_woocommerce` проверкой, предназначенной только для поставщика, которая проверяет роль **запрашивающего** пользователя и никогда не проверяет **целевой** пользователь. Это позволяет аутентифицированным злоумышленникам с доступом на уровне поставщика/продавца и выше читать, изменять или удалять любого пользователя WordPress, включая администраторов, через запросы `GET`/`PUT`/`DELETE` к `/wp-json/dokan/v1/customers/{id}`.
Установка параметра `password` в записи администратора обеспечивает полный контроль над сайтом.
Показать оригинальное описание (EN)
The Dokan plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 5.0.1. This is due to a missing authorization check in the `CustomersController` REST controller (`includes/REST/CustomersController.php`), which re-registers WooCommerce's customer CRUD routes under the `/dokan/v1/customers/` namespace and replaces WooCommerce's native `manage_woocommerce` capability check with a vendor-only check that inspects the **requesting** user's role and never validates the **target** user. This makes it possible for authenticated attackers with Vendor/Seller-level access and above to read, modify, or delete any WordPress user — including administrators — via `GET`/`PUT`/`DELETE` requests against `/wp-json/dokan/v1/customers/{id}`. Setting the `password` parameter on an administrator's record yields a full site takeover.
Характеристики атаки
Последствия
Строка CVSS v3.1