Skip to content

Shopify · disclosed report #898528

GraphQL AdminGenerateSessionPayload is leaked to staff with no permission

How it was found, in CyberSIXT's words · 173 votes

This analysis is CyberSIXT's own summary of the public report, written by a model and checked automatically. It may be wrong: the researcher's report is the source.

Read the researcher's report

Read the researcher's report on HackerOne

A staff account without app-management permissions could invoke an Admin GraphQL mutation to generate session tokens for certain installed apps. The tokens enabled limited access to apps within the same shop; the program reports that it added an Apps-permission check.

How it was found

  1. The researcher tested the Admin GraphQL session-generation mutation using a staff account without permissions.
  2. The mutation returned a session token for an installed app.
  3. The program confirmed access was limited to a subset of apps in the current shop.
Access needed
A user account · an account
User interaction
None
Whose object
The attacker's own
Boundary crossed
A staff member without app permissions generated an app session token within their current shop.
Root cause
The mutation lacked an authorization check for the Apps permission.
Impact
A staff member without that permission could generate tokens and access a limited subset of installed apps in the same shop.
Fix
The program added an Apps-permission check to the mutation.
Components
Admin GraphQL mutation, app session-token generation, installed apps
Confidence
high

This analysis is CyberSIXT's own summary of the public report, written by a model and checked automatically. It may be wrong: the researcher's report is the source. Written 2026-11-14. Ask for a correction or removal.

Similar findings, side by side
ReportAccessWhose objectBoundary crossed
Staff without Manage Themes permissions can update themesA user accountNo object involvedA staff member with Manage public listings permission could upload a theme without Manage themes permission.
June 2022 Incident ReportA privileged roleAnother user'sAn employee used internal access to customer reports, then disclosed their contents outside the platform for bounty gain.
An attacker can archive and unarchive any structured scope object on HackerOneA user accountAnother user'sAn authenticated user's mutation changed a structured scope owned by another program.
Disclosing PolicyPageAssetGroup in Private Programs via /graphql `gid://hackerone/PolicyPageAssetGroupsIndex::PolicyPageAssetGroup/{id}`No accountAnother user'sUnauthenticated access crossed the private-program visibility boundary to retrieve asset-group data.
Handling of `tracking` command allows making arbitrary blind requests with user's cookies from Grammarly Extension's originA user accountThe attacker's ownA webpage caused the extension to make authenticated requests to other origins using the victim’s session.
Informations disclosure - Access to some checkout informationsNo accountAnother user'sA guest requester accessed another user's checkout by supplying its sequential ID.
`socket` command allows sending data over WebSockets to arbitrary origins from Grammarly ExtensionNo accountNo object involvedA web page caused the extension background context to connect to an attacker-selected WebSocket origin.
[URGENT] Opportunity to publish tweets on any twitters accountA user accountAnother user'sA requester published a post through another user's account by altering the account identifier.
SMAP bypassA user accountNo object involvedA user-triggered copy fault leaves the kernel running with its user-page access restriction disabled.
Use Github pack with Coda employee github account (search code of Coda's private repositories)No accountAnother user'sUnauthenticated requests used another user's GitHub connection to search private repositories.
How the Arch Angel stole Live EventsNot clear from the reportNo object involvedAlleged internal access was used to alter triage records and disrupt a service; not substantiated.
Unrestricted Access to Celery Flower InstanceNo accountNo object involvedAn unauthenticated external user reached the Celery worker-management interface.
Program
Shopify
Status
Valid
Severity
Medium
Bounty
None stated
Weakness as filed
No weakness filed
Disclosed
2020
Upvotes
173

Every one of the 12 is a mark on the map. Named now: 1 to 12, most similar first.

  1. Staff without Manage Themes permissions can update themes#1550400Shopify · needs: a user account · 2 shared techniques
  2. June 2022 Incident Report#1622449HackerOne · needs: a privileged role · 1 shared technique
  3. An attacker can archive and unarchive any structured scope object on HackerOne#1501611HackerOne · needs: a user account · 1 shared technique
  4. Disclosing PolicyPageAssetGroup in Private Programs via /graphql `gid://hackerone/PolicyPageAssetGroupsIndex::PolicyPageAssetGroup/{id}`#1618347HackerOne · needs: no account · 1 shared technique
  5. Handling of `tracking` command allows making arbitrary blind requests with user's cookies from Grammarly Extension's origin#389108Superhuman (formerly Grammarly) · needs: a user account · 1 shared technique
  6. Informations disclosure - Access to some checkout informations#1064869Shopify · needs: no account · 1 shared technique
  7. `socket` command allows sending data over WebSockets to arbitrary origins from Grammarly Extension#395729Superhuman (formerly Grammarly) · needs: no account · 1 shared technique
  8. [URGENT] Opportunity to publish tweets on any twitters account#208978X / xAI · needs: a user account · 1 shared technique
  9. SMAP bypass#1048322PlayStation · needs: a user account · 1 shared technique
  10. Use Github pack with Coda employee github account (search code of Coda's private repositories)#676581Superhuman (formerly Grammarly) · needs: no account · 1 shared technique
  11. How the Arch Angel stole Live Events#2285198HackerOne · needs: not clear from the report · 1 shared technique
  12. Unrestricted Access to Celery Flower Instance#2264960EXNESS · needs: no account · 1 shared technique

paid a bounty

Zoom in on the map and the dots under the middle of it are named where they are.

Data as of 2026-11-15. CVE List through 2026-11-15 · EPSS of 2026-11-15 · CISA KEV checked 2026-11-15. Sources: the CVE List, CISA KEV, EPSS, NVD, nuclei templates and public bug bounty data.