CVE-2026-56825
nicheMissing Authorization in Shopper Admin Allows Unauthorized Product Removal from Collections
CVE-2026-56825 is a missing-authorization flaw (CWE-862) in the CollectionProducts Livewire component of the Shopper e-commerce admin panel: the per-record delete action and the bulk delete action have no ->authorize() checks, so the server never verifies the caller's permissions before detaching products. Any authenticated admin-panel session can trigger these actions — including staff whose role only holds browse_collections — and because the public Collection $collection property is not marked #[Locked], the collection ID is mutable in the Livewire wire payload, letting the caller empty any collection in the database, individually or in bulk. An attacker gains integrity and availability impact (CVSS 8.1 High, confidentiality unaffected): products can be detached from arbitrary collections, disrupting storefront merchandising until restored. All Shopper deployments whose admin panel is accessible to minimally privileged staff accounts are affected, while single-trusted-admin stores face negligible risk. No public proof-of-concept, CISA KEV listing, or in-the-wild exploitation has been reported.
What to do: Upgrade Shopper to a release that adds ->authorize() checks to both delete actions and marks the $collection property #[Locked] (fixed version not stated in the advisory — track the vendor's GitHub releases and security advisory). Until patched, restrict admin-panel access to fully trusted administrators and avoid assigning low-privilege roles such as browse_collections to staff. Check collection membership histories for unexplained product removals.
| Shopper (Laravel e-commerce platform, admin panel CollectionProducts component) | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Shopper is a Headless e-commerce Admin Panel. Prior to 2.9.2, packages/admin/src/Livewire/Components/Collection/CollectionProducts.php exposes Action::make('delete') and DeleteBulkAction::make() without delete_collections authorization, while public Collection $collection remains client mutable because it lacks the Livewire Locked attribute. An authenticated staff user with only browse_collections can invoke a Livewire removal action, substitute an arbitrary collection identifier, and detach selected products or empty the collection. This can disrupt catalog landing pages and promotions associated with the targeted collection. This issue is fixed in version 2.9.2.
- Ecosystems
- composer
- Weakness
- CWE-862
- Vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
- GHSA
- GHSA-2cg9-97gq-9mqp (high)
In the news0 stories
No ingested article mentions this CVE yet.