app/api/orders/[id]/route.tsЭндпоинт /api/orders/[id] проверяет, что пользователь залогинен, но не что заказ принадлежит именно ему.
Любой авторизованный пользователь откроет чужой заказ, поменяв id в адресе (IDOR) — утекут чужие данные и деньги.
В app/api/orders/[id]/route.ts добавь проверку владельца: после аутентификации сверяй order.userId с id текущего пользователя и возвращай 404, если не совпало. Сделай так во всех ручках, работающих с записями по id.
Почему так нельзя
«Залогинен» ≠ «имеет право»: каждую запись по id проверяй на принадлежность владельцу.