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:
composer require shopper/admin:^2.8
Workarounds
None. Upgrade to v2.8.0.
References
- Pull request: #511
- CWE-285 Improper Authorization
- CWE-269 Improper Privilege Management
Impact
Two distinct authorization defects in the team settings allowed any authenticated panel user to take over the RBAC system:
Settings/Team/Indexhad nomount()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/RolePermissiongated its write actions on the read-onlyview_userspermission. Any user holdingview_userscould grant themselves or any other user arbitrary permissions, includingmanage_usersandedit_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 againstmanage_users.Settings/Team/RolePermissionwrite actions now requiremanage_usersinstead ofview_users.Upgrade via:
Workarounds
None. Upgrade to
v2.8.0.References