Missing authorization in Shopper team settings lets staff escalate privileges
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-285.
Summary
Shopper from 2.8.0 before 2.8.1 and shopper/framework from 2.8.0 before 2.9.2 have missing authorization checks in team settings (CWE-862). An authenticated staff member with only view_users and access_dashboard permissions can grant permissions to their own role, create an administrator, or delete removable roles. Deleting a role removes access for its assigned users, which causes denial of service.
Written with Claude Haiku 5.5 from the sources below · 2026-11-03
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| shopperlabs | shopper | 2.8.0 to before 2.8.1 | 2.8.1 | Patch available | CNA |
| — | shopper/framework (Packagist) | 2.8.0 to before 2.9.2 | 2.9.2 | Patch available | GHSA-j328-xmgp-j4q3 |
- shopper Vendorshopperlabs Affected 2.8.0 to before 2.8.1 Fixed in 2.8.1 Patch available CNA
- shopper/framework (Packagist) Vendor— Affected 2.8.0 to before 2.9.2 Fixed in 2.9.2 Patch available GHSA-j328-xmgp-j4q3
Remediation
Update shopper to version 2.8.1 and shopper/framework to version 2.9.2.
Written with Claude Haiku 5.5 from the sources below · 2026-11-03
- Fix · CNA shopper (shopperlabs) Fixed in 2.8.1
- Fix · GHSA-j328-xmgp-j4q3 shopper/framework (Packagist) Fixed in 2.9.2 Advisory →
Timeline
- 2026-10-28 Threatist record created from CVE-2026-56828
- 2026-10-30 Priority changed: MEDIUM → LOW
- 2026-11-03 CISA SSVC decision points changed
- 2026-11-03 Priority changed: LOW → MEDIUM
References
Other 6
- https://github.com/shopperlabs/shopper/security/advisories/GHSA-j328-xmgp-j4q3
- https://github.com/shopperlabs/shopper/pull/514
- https://github.com/shopperlabs/shopper/commit/ac9a76044a8e4a2b570b438d66cf3007f3dc479e
- https://github.com/shopperlabs/shopper/compare/v2.8.1...v2.9.2
- https://github.com/shopperlabs/shopper/releases/tag/v2.8.1
- https://github.com/shopperlabs/shopper
More shopperlabs vulnerabilities
- TI-2026-83413 Stored XSS via SVG and HTML uploads in Shopper admin panel CVSS 3.1HIGH 8.7
- TI-2026-40978 Missing authorization in shopperlabs shopper CVSS 3.1HIGH 8.1
- TI-2026-83412 Missing authorization in Shopper lets staff delete product variants CVSS 3.1HIGH 8.1
- TI-2026-40979 Shopper: Unauthorized inventory stock manipulation via unlocked variant property in VariantStock component CVSS 3.1HIGH 8.1
- TI-2026-40977 Shopper: Missing authorization on product removal actions in CollectionProducts component CVSS 3.1HIGH 8.1
- TI-2026-40981 Shopper: Negative discount values accepted and propagated through order calculation pipeline CVSS 3.1MEDIUM 6.5
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences