An Insecure Direct Object Reference (IDOR) vulnerability exists in the Purchase Order cancellation endpoint at service-goauth.mokapos.com.
An authenticated user can cancel another user’s Purchase Order by replacing the PO ID in the cancellation request.
Join Medium for free to get updates from this writer.
The server does not verify ownership or authorization of the targeted PO resource.
PUT /purchase-order/v1/ingredient-purchase-order/{PO_ID}/cancel1. User A logs in to https://backoffice.mokapos.com
2. Navigate to INVENTORY → Purchase Order (PO)
3. Create a new Purchase Order and note the PO ID
4. User B logs in to https://backoffice.mokapos.com
5. Navigate to INVENTORY → Purchase Order (PO)
6. Create a PO
7. Open the PO detail page → Click More → Cancel PO while intercepting the request
8. The following request is captured:
PUT /purchase-order/v1/ingredient-purchase-order/USER_B_PO_ID/cancel HTTP/2
Host: service-goauth.mokapos.com
Authorization: ATTACKER_TOKEN
Outlet-Id: 1141719
Content-Length: 09. Replace USER_B_PO_ID with User A’s PO ID
10. Send the modified request
11. Server responds with:
200 OK12. When User A refreshes the page, the PO status changes from
“Waiting for Fulfillment” → “Cancelled”
February 5, 2026: Submit Report
February 5, 2026: Under Review
February 8, 2026: Out of Scope
Press enter or click to view image in full size