Staff member with no permission can delete POS staff from account settings

Disclosed: 2020-09-14 19:56:50 By kunal94 To shopify
Low
Vulnerability Details
Hello Team #Description Shopify POS also has staff settings only for POS purposes where an admin can add POS Shopify staff along with fname,lname, email address, and generated pin. Reference - https://help.shopify.com/en/manual/sell-in-person/pos-classic/setup/staff-settings After creation, Shopify POS staff displays in /admin/settings/account, and Vulnerability arises when staff members with no permission can delete Shopify POS staff from account settings. #Step To Reproduce + Go to the Shopify POS app from the admin session. {F805568} + Currently, I've Shopify Plus Partner Sandbox/Monthly, so in a sandbox environment, staff POS staff settings are not enabled, however, we can modify response and enable the POS staff member feature on the sandbox environment to test. + Intercept Shopify POS app area from burp suite and notice the GRAPHQL response **Request** `POST /graphql-proxy/admin HTTP/1.1 Host: pos-channel.shopifycloud.com ` `{"operationName":"Overview","variables":{},"query":"query Overview {\n shop {\n currencyCode\n ianaTimezone\n countryCode\n features {\n retailPackage\n __typename\n }\n staffPermissionsBetaFlag: beta(name: \"pos_web_admin_staff_user_permissions\")\n accountSetupQuestionsAnswers {\n answer\n handle\n __typename\n }\n plan {\n trial\n __typename\n }\n accountOwner {\n email\n __typename\n }\n __typename\n }\n locations(first: 50) {\n edges {\n node {\n name\n id\n addressVerified\n hasActiveInventory\n __typename\n }\n __typename\n }\n __typename\n }\n products(first: 1) {\n edges {\n node {\n id\n __typename\n }\n __typename\n }\n __typename\n }\n}\n"} ` **Response** ``` {"data":{"shop":{"currencyCode":"INR","ianaTimezone":"America\/New_York","countryCode":"IN","features":{"retailPackage":true,"__typename":"ShopFeatures"},"staffPermissionsBetaFlag":false,"accountSetupQuestionsAnswers":[{"answer":"No locations yet","handle":"number_locations","__typename":"AccountSetupQuestionsAnswer"},{"answer":"1","handle":"offline_brick_and_mortar","__typename":"AccountSetupQuestionsAnswer"},{"answer":"1","handle":"offline_markets_fairs","__typename":"AccountSetupQuestionsAnswer"},{"answer":"1","handle":"offline_temp_shops","__typename":"AccountSetupQuestionsAnswer"}],"plan":{"trial":false,"__typename":"ShopPlan"},"accountOwner":{"email":"[email protected]","__typename":"StaffMember"},"__typename":"Shop"},"locations":{"edges":[{"node":{"name":"khudirampally, bagdogra","id":"gid:\/\/shopify\/Location\/35202859030","addressVerified":false,"hasActiveInventory":true,"__typename":"Location"},"__typename":"LocationEdge"},{"node":{"name":"test","id":"gid:\/\/shopify\/Location\/35202891798","addressVerified":true,"hasActiveInventory":true,"__typename":"Location"},"__typename":"LocationEdge"}],"__typename":"LocationConnection"},"products":{"edges":[{"node":{"id":"gid:\/\/shopify\/Product\/4351723438102","__typename":"Product"},"__typename":"ProductEdge"}],"__typename":"ProductConnection"}},"extensions":{"cost":{"requestedQueryCost":60,"actualQueryCost":12,"throttleStatus":{"maximumAvailable":600000.0,"currentlyAvailable":599988,"restoreRate":30000.0}}}} ``` + In the response, we have `"staffPermissionsBetaFlag":false`, use Burp Match and Replace rule on response body and set the value from `"staffPermissionsBetaFlag":false` to `"staffPermissionsBetaFlag":true`. {F805580} + Again refresh the page and we have access to Shopify POS Staff manage area. {F805581} + Navigate to "Manage POS staff" and add POS staff {F805609} + Save it and when you go to `/admin/settings/account` and we can see Shopify POS staff down below: {F805612} + Next, Logged in as staff member with no permission, and navigate to `/admin/settings/account`, down below staff member can also see POS staff account, open POS staff account area, and click on delete, and the account will be deleted successfully. {F805625} + I have set the severity as low since I don't know about the level of POS staff's impact on the Shopify store. Thanks Kunal ## Impact + User with no permission at all can delete "Shopify POS staff" completely.
Actions
View on HackerOne
Report Stats
  • Report ID: 860348
  • State: Closed
  • Substate: resolved
  • Upvotes: 12
Share this report