Shopper is a Headless e-commerce Admin Panel. Prior to 2.8.0, two distinct authorization defects in the team settings allowed any authenticated panel user to take over the RBAC system. Settings/Team/Index had no mount() authorization. Any authenticated user could load the page and use its public actions to create new roles and delete other users, including administrators. Settings/Team/RolePermission gated its write actions on the read-only view_users permission. Any user holding view_users could grant themselves or any other user arbitrary permissions, including manage_users and edit_orders, effectively escalating to full panel administrator from a read-only account. Combined, these two defects allow a low-privilege authenticated user to obtain administrator privileges and remove the legitimate administrators from the panel. This vulnerability is fixed in 2.8.0.
The first defect consists of a lack of authorization control when loading the Settings/Team/Index page — any logged-in user can use its public actions to create new roles and delete other users, including administrators. The second defect concerns Settings/Team/RolePermission, where write actions were protected only by the read-only 'view_users' permission instead of the appropriate user management permission. A user with 'view_users' could grant themselves or others any permissions, including 'manage_users' and 'edit_orders', thus escalating to full panel administrator permissions.
An attacker with low privileges can obtain full administrator permissions of the panel, modify roles and assigned permissions, and permanently remove legitimate administrators from the system, gaining exclusive control over the e-commerce panel.
Shopper should be updated to version 2.8.0 or later, in which the described authorization defects have been fixed. Details available in the vendor references: https://github.com/shopperlabs/shopper/security/advisories/GHSA-c3qp-2ggw-xjg7
Shopper (Headless e-commerce Admin Panel) in versions prior to 2.8.0
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H