Shopper: read-only team permissions allow administrator creation and permission escalation
What fixes it
- 2.9.2shopper/framework, PackagistOSV
composer require "shopper/framework:^2.9.2"
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Shopper is a Headless e-commerce Admin Panel. From 2.8.0 until 2.8.1, three Shopper Livewire admin components retain authorization gaps after the earlier team-settings authorization fix. A staff member with only view_users and access_dashboard can mutate permissions, create an administrator, or delete roles. In packages/admin/src/Livewire/Components/Settings/Team/Permissions.php, togglePermission and removePermission authorize view_users rather than the stronger access_setting permission; packages/admin/resources/views/livewire/components/settings/team/permissions.blade.php exposes permission IDs in wire:click handlers. The attacker can grant arbitrary permissions to the bound role, including access_setting on the attacker's own role, or delete permission definitions. In packages/admin/src/Livewire/SlideOvers/CreateTeamMember.php, mount() and store() also accept view_users, and the client-selected role_id can identify the admin role, allowing creation of a pre-verified administrator with an attacker-chosen password. In packages/admin/src/Livewire/Pages/Settings/Team/RolePermission.php, deleteAction has no action authorization and is only conditioned on can_be_removed, while page access requires view_users. Deleting a removable role removes access for assigned users, enabling RBAC denial of service as well as privilege escalation. This issue is fixed in version 2.8.1.
Text from CVE List
Affected versions 6
- shopperaffected: >= 2.8.0, < 2.8.1CVE List
- shopper/framework, Packagistfrom 2.8.0, fixed in 2.9.2OSV
- shopper/framework, Packagistv2.8.0OSV
- shopper/framework, Packagistv2.8.1OSV
- shopper/framework, Packagistv2.9.0OSV
- shopper/framework, Packagistv2.9.1OSV
References 5
- github.com/shopperlabs/shopper/commit/ac9a76044a8e4a2b570b438d66cf3007f3dc479eFixvia CVE List
- github.com/shopperlabs/shopper/releases/tag/v2.8.1Fixvia CVE List
- github.com/shopperlabs/shopper/security/advisories/GHSA-j328-xmgp-j4q3Advisoryvia CVE List
- github.com/shopperlabs/shopper/pull/514Referencevia CVE List
- github.com/shopperlabs/shopper/compare/v2.8.1...v2.9.2Referencevia CVE List