You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
При оформлении заказа гостем с email существующего покупателя Customer::getOrCreate() находит msCustomer по email и переписываетmsCustomer.token токеном текущей гостевой сессии. Дальше API/корзина/профиль работают от чужого customer_id.
Шаги воспроизведения
Иметь покупателя A с email victim@example.com и его API/session token.
В инкогнито (новый guest token) положить товар в корзину.
На checkout указать address_email=victim@example.com (остальные поля любые валидные).
Submit заказа.
Проверить msCustomer жертвы: поле token стало равным guest-токену атакующего; при autoLogin — ещё и msCustomerToken.customer_id.
Ожидаемое поведение
Заказ может привязаться к существующему customer по email без передачи сессии/токена владельцу заказа. Либо требовать подтверждение владения email.
Activity
fix(customer): stop checkout token takeover via email (#369) (#391)