Подделка межсайтового запроса (CSRF) в OrderConfirmController по адресу GET /order/confirm/{order_number} в Roskus Prospero Flow CRM до версии 5.15.11 позволяет неаутентифицированному злоумышленнику подтвердить любой заказ от имени аутентифицированного пользователя, направляя его на созданную страницу. Промежуточное программное обеспечение VerifyCsrfToken от Laravel применяет токены CSRF только к запросам POST, PUT, PATCH и DELETE; Объявление Route::get оставляет это действие по изменению состояния незащищенным. Сеансовые файлы cookie, настроенные с помощью SameSite=Lax, автоматически включаются в межсайтовую навигацию верхнего уровня, поэтому один щелчок по ссылке запускает OrderConfirmController::confirm() и переводит целевой заказ из состояния ожидания в состояние подтверждения без авторизации пользователя.
Поскольку номера заказов представляют собой последовательные целые числа, злоумышленник может перечислить и подтвердить все существующие заказы за одну автоматическую проверку.
Показать оригинальное описание (EN)
Cross-Site Request Forgery (CSRF) in the OrderConfirmController at GET /order/confirm/{order_number} in Roskus Prospero Flow CRM before 5.15.11 allows an unauthenticated attacker to confirm any order on behalf of an authenticated user by directing them to a crafted page. Laravel's VerifyCsrfToken middleware enforces CSRF tokens only on POST, PUT, PATCH, and DELETE requests; the Route::get declaration leaves this state-changing action unprotected. Session cookies configured with SameSite=Lax are automatically included in top-level cross-site navigation, so a single link click triggers OrderConfirmController::confirm() and transitions the target order from pending to confirmed without user authorization. Because order numbers are sequential integers, an attacker can enumerate and confirm all existing orders in a single automated sweep.
Характеристики атаки
Последствия
Строка CVSS v4.0