Tutor LMS — плагин для электронного обучения и онлайн-курсов для WordPress уязвим к небезопасной прямой ссылке на объект во всех версиях до 3.9.7 включительно. Это связано с отсутствием проверок аутентификации и авторизации в функции pay_incomplete_order(). Функция принимает контролируемый злоумышленником параметр order_id и использует его для поиска данных о заказе, а затем записывает поля выставления счета в профиль владельца заказа ($order_data->user_id), не проверяя личность или право собственности запрашивающего.
Поскольку nonce Tutor (`_tutor_nonce`) отображается на общедоступных страницах внешнего интерфейса, это позволяет неаутентифицированным злоумышленникам перезаписать профиль выставления счетов (имя, адрес электронной почты, телефон, адрес) любого пользователя, у которого есть неполный заказ вручную, путем отправки созданного запроса POST с угаданным или перечисляемым `order_id`.
Показать оригинальное описание (EN)
The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to an Insecure Direct Object Reference in all versions up to, and including, 3.9.7. This is due to missing authentication and authorization checks in the `pay_incomplete_order()` function. The function accepts an attacker-controlled `order_id` parameter and uses it to look up order data, then writes billing fields to the order owner's profile (`$order_data->user_id`) without verifying the requester's identity or ownership. Because the Tutor nonce (`_tutor_nonce`) is exposed on public frontend pages, this makes it possible for unauthenticated attackers to overwrite the billing profile (name, email, phone, address) of any user who has an incomplete manual order, by sending a crafted POST request with a guessed or enumerated `order_id`.
Характеристики атаки
Последствия
Строка CVSS v3.1