ZeroHour

CVE-2026-56827

niche

Missing Authorization on Filament Bulk Actions in Shopper Admin (CVE-2026-56827)

CVSS 3.1
8.1 high
EPSS
Published
()
Modified
AI analysis

The Shopper e-commerce package for Laravel leaves several Filament `groupedBulkActions` blocks on its admin Livewire pages without permission checks: the bulk delete and enable/disable actions on the attributes, tags, brands, categories, and suppliers pages never call `->authorize()`, while each page's `mount()` only enforces the read-only `browse_*` permission. Any staff account holding just the corresponding browse permission can drive the standard Livewire `callTableBulkAction` endpoint to permanently delete every product attribute or tag (with attribute deletions cascading into dependent product variants) or mass-toggle the `is_enabled` visibility of every brand, category, and supplier. The attacker gains integrity and availability sabotage of the storefront catalog (CVSS 8.1 High, no confidentiality impact) using any low-privilege staff login, with no user interaction. All self-hosted Shopper stores that expose these admin pages to browse-only staff roles are affected through master commit ac9a760; no fixed release version is stated in the available data. No public proof-of-concept and no confirmed exploitation in the wild is known.

What to do: Upgrade to the Shopper release that adds `->authorize()` gates to the affected grouped bulk actions as soon as one is published (no fixed version is given in the available data). Until then, deny browse-only staff roles access to the attributes, tags, brands, categories, and suppliers admin pages, and audit those tables (plus dependent product variants) for unexplained bulk deletions or visibility changes.

Affected
Shopper (Laravel/Filament e-commerce admin panel, packages/admin)
Estimated exposure
nichelikely low thousands of self-hosted stores at most (estimate; no published active-install telemetry) — Shopper is a low-adoption open-source Laravel e-commerce toolkit with self-hosted admin panels reachable only to logged-in staff, and no public scan or install-count data exists, so the order of magnitude reflects its small community…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Shopper is a Headless e-commerce Admin Panel. Prior to 2.9.2, groupedBulkActions in packages/admin/src/Livewire/Pages/Attribute/Browse.php, packages/admin/src/Livewire/Pages/Tag/Index.php, packages/admin/src/Livewire/Pages/Brand/Index.php, packages/admin/src/Livewire/Pages/Category/Index.php, and packages/admin/src/Livewire/Pages/Supplier/Index.php omit server-side authorization while the pages require only browse_attributes, browse_tags, browse_brands, browse_categories, or browse_suppliers. A browse-only staff user can invoke DeleteBulkAction to mass delete attributes or tags and can invoke BulkAction::make('enabled') or BulkAction::make('disabled') to change attribute, brand, category, or supplier visibility. These operations can break product variants and substantially disrupt storefront catalog visibility. Per-record actions and the comparison pages identified by the advisory are correctly authorized and are not affected. 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-243p-f3cv-c5wh (high)

In the news

No ingested article mentions this CVE yet.