GHSA-c3qp-2ggw-xjg7
Shopper: Authorization bypass and RBAC privilege escalation in team settings
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Packagist | shopper/framework | < 2.8.0 | 2.8.0 |
Details
As written in the advisory (Markdown source, shown as plain text).
## Impact
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.
## Patches
Fixed in `v2.8.0`:
- `Settings/Team/Index::mount()` now authorizes against `manage_users`.
- `Settings/Team/RolePermission` write actions now require `manage_users` instead of `view_users`.
Upgrade via:
```bash
composer require shopper/admin:^2.8
```
## Workarounds
None. Upgrade to `v2.8.0`.
References
External links from the advisory. They lead to third-party sites.