CVE-2026-94432: IDOR в Appointment Booking Plugin LatePoint ≤ 5.7.1 раскрывает счета и ломает платежи
В WordPress-плагине Appointment Booking Plugin LatePoint (версии до 5.7.1 включительно) обнаружена уязвимость класса Insecure Direct Object Reference. Неаутентифицированный злоумышленник может перебирать чужие счета по последовательному invoice_id, создавать несанкционированные транзакционные интенты и сбрасывать ключи действующих платежей. Критичность — средняя (CVSS 5.3).
Подробности
Уязвимость затрагивает Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress в версиях ≤ 5.7.1. Вектор атаки — публичный маршрут, зарегистрированный через wp_ajax_nopriv_latepoint_route_call, то есть доступный любому неавторизованному пользователю. Обработчик загружает объект OsInvoiceModel по параметру invoice_id, представляющему собой последовательное целое число, без проверки ключа доступа, UUID или принадлежности счёта. Для сравнения: родственные обработчики Stripe и Razorpay требуют 128-битный access-key UUID через OsInvoicesHelper::get_invoice_by_key — в уязвимом коде PayPal-ветки такой проверки нет. После загрузки счёта вызывается OsTransactionIntentHelper::create_or_update_transaction_intent(), который сохраняет транзакционный интент, привязанный к customer_id, order_id и charge_amount целевого счёта, и перегенерирует его intent_key — причём это происходит до достижения проверки конфигурации PayPal. В результате неаутентифицированный атакующий может: - перебирать счета (invoice enumeration), принадлежащие произвольным клиентам; - создавать несанкционированные записи транзакционных интентов, привязанные к данным чужого клиента; - перезаписывать intent_key любого «живого» интента в статусе NEW — это делает недействительным ключ, которого ожидают легитимные потоки Stripe/Razorpay, и ломает платёжные вебхуки для соответствующих клиентов. Уязвимости присвоена оценка CVSS 5.3 (MEDIUM).Что делать
- Обновить плагин Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress до версии выше 5.7.1, как только она станет доступна у поставщика. Приоритет — высокий для сайтов, принимающих онлайн-платежи. - Если обновление пока невозможно, ограничить доступ к административным AJAX-маршрутам плагина средствами WAF, заблокировав неаутентифицированные запросы к latepoint_route_call с действием create_order_for_transaction. - Ввести серверную проверку принадлежности счёта и обязательное использование access-key/UUID вместо последовательного invoice_id — по аналогии с обработчиками Stripe и Razorpay. - Провести аудит журналов на предмет подозрительных обращений к маршруту с перебором invoice_id и проверить целостность intent_key у незавершённых платежей. - После установки исправления отозвать и пересоздать зависшие транзакционные интенты, чьи ключи могли быть перезаписаны. Итог: уязвимость CVE-2026-94432 не требует аутентификации и позволяет одновременно раскрывать данные о счетах клиентов и нарушать работу платёжного контура. Несмотря на среднюю оценку CVSS, для интернет-магазинов и сервисов записи с онлайн-оплатой риск следует считать повышенным — обновление плагина нужно установить без промедления.Источник: CVE Project (cvelistV5)
