Плагин «Отзывы клиентов для WooCommerce» для WordPress уязвим для обхода аутентификации во всех версиях до 5.103.0 включительно. Это происходит из-за того, что функция create_review_permissions_check() сравнивает предоставленный пользователем параметр key с метазначением заказа ivole_secret_key, используя строгое равенство (===`), без проверки того, что сохраненный ключ не пуст. Для заказов, по которым не было отправлено электронное письмо с напоминанием о проверке, мета-мета `ivole_secret_key` не установлена, в результате чего `get_meta()` возвращает пустую строку.
Злоумышленник может указать `key: ""` для соответствия этому пустому значению и обойти проверку разрешений. Это позволяет неаутентифицированным злоумышленникам отправлять, изменять и внедрять обзоры любого продукта, включая продукты, не связанные с указанным заказом, через конечную точку REST API `POST /ivole/v1/review`. Отзывы одобряются автоматически по умолчанию, поскольку для `ivole_enable_moderation` по умолчанию установлено значение `"no"`.
Показать оригинальное описание (EN)
The Customer Reviews for WooCommerce plugin for WordPress is vulnerable to authentication bypass in all versions up to, and including, 5.103.0. This is due to the `create_review_permissions_check()` function comparing the user-supplied `key` parameter against the order's `ivole_secret_key` meta value using strict equality (`===`), without verifying that the stored key is non-empty. For orders where no review reminder email has been sent, the `ivole_secret_key` meta is not set, causing `get_meta()` to return an empty string. An attacker can supply `key: ""` to match this empty value and bypass the permission check. This makes it possible for unauthenticated attackers to submit, modify, and inject product reviews on any product — including products not associated with the referenced order — via the REST API endpoint `POST /ivole/v1/review`. Reviews are auto-approved by default since `ivole_enable_moderation` defaults to `"no"`.
Характеристики атаки
Последствия
Строка CVSS v3.1