PATCH /orders/{id} accepts an order belonging to another account
Two accounts, A and B. Order ord_7781 belongs to account B. The request below is authenticated as account A.
PATCH /api/v2/orders/ord_7781
Authorization: Bearer <token for account A>
Content-Type: application/json
{
"shippingAddress": "1 Test Street, Zagreb"
}200 OK
{
"id": "ord_7781",
"shippingAddress": "1 Test Street, Zagreb",
"updatedAt": "2026-07-21T09:14:22Z"
}- Expected
- 403 Forbidden. Account A has no relationship to ord_7781.
- Actual
- 200 OK. The address was changed and the response confirms the new value. A follow-up GET as account B returns the modified address, so the write reached storage.
- Impact
- Any authenticated customer who can guess or enumerate an order id can redirect another customer's delivery. The same handler serves the web and mobile clients.
- Notes
- GET on the same object correctly returns 403, so the ownership check exists but isn't applied on the update path.