T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/lib/shopify-cli.mjs:7- Finding
All Operations Require Excessive Shopify Read and Write Scopes
- Content
View full analysis
.myshopify.com --scopes read_locales,write_locales,read_markets,write_markets,read_translations,write_translations --json ``` ### Technical Analysis The authorization model uses one fixed scope set for every operation. Consequently, a read-only connection check, locale inspection, market inspection, or translation fetch requires the same privileges as locale publishing, market modification, and translation registration. The scope assertion in Dev Dashboard mode does not calculate permissions from the active GraphQL operation. It rejects otherwise adequate read-only credentials unless all six scopes are present. The documented CLI onboarding command similarly requests all write scopes at initial authentication, even when the merchant only requested an audit or preview. This exceeds the minimum authority needed for several declared workflows: - Locale inspection needs `read_locales`. - Market inspection needs `read_markets`. - Translation fetching needs `read_translations`. - Translation registration needs `write_translations`. - Locale publication needs `write_locales`. - Market locale modification needs `write_markets`. ...[truncated 1262 chars]- Remediation
View remediation
