
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-56830 is a missing authorization vulnerability in Shopper, a headless e-commerce admin panel built on Laravel/Livewire. It affects all versions of shopper/framework prior to 2.9.2 and represents an incomplete fix for a prior advisory (GHSA-h4mp-g9c6-xwph): the earlier hardening added #[Locked] to the $product property in Media.php but omitted the authorize('edit_products') call present in all five sibling sub-form components. The vulnerability was reported by Vishal Shukla, published to the GitHub Advisory Database on September 11, 2026, and carries a CVSS v3.1 base score of 6.5 (Medium) (Github Advisory).
The root cause is CWE-862 (Missing Authorization): the store() method in packages/admin/src/Livewire/Components/Products/Form/Media.php (lines 64–76) performs a direct $this->product->update($this->form->getState()) call — overwriting a product's thumbnail and gallery images — without first calling $this->authorize('edit_products'), which all sibling sub-forms (Edit, Inventory, Seo, Shipping, Files) correctly enforce (Github Advisory). An attacker exploits this by obtaining the Livewire component snapshot (embedded as data-livewire-snapshot in the product edit page HTML) and then directly invoking the store action via a crafted POST to /shopper/livewire/update using a low-privilege session. Because $product is #[Locked], the product binding cannot be redirected client-side, so exploitation is constrained to products whose edit pages have been loaded in any admin session the attacker can observe or reuse (Github Advisory, Fix PR).
A staff user holding only the browse_products permission — with no edit_products grant — can silently replace a product's thumbnail and gallery images with arbitrary content (e.g., defaced or misleading images) on the live storefront. Because the write bypasses the normal edit workflow, it does not appear in the product edit history in a way that would be attributed to a permission-holding editor, reducing auditability. There is no confidentiality or availability impact; the risk is entirely to data integrity, scoped to products whose edit pages were previously loaded (Github Advisory).
No in-the-wild exploitation has been reported, and no weaponized exploit kits are known to include this vulnerability. A proof-of-concept Python script is publicly documented in the GitHub Security Advisory, demonstrating the bypass using standard HTTP requests (Github Advisory). The EPSS score is approximately 0.36–0.39%, indicating a low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, and no threat actor attribution has been reported (Github Advisory).
browse_products but NOT edit_products. Capture the laravel_session and XSRF-TOKEN cookies.data-livewire-snapshot attribute in the HTML source for the Media sub-form component — this JSON blob contains the locked product ID and component state./shopper/livewire/update with the captured snapshot and a store method call:curl -s -X POST http://<target>/shopper/livewire/update \
-H "Content-Type: application/json" \
-H "X-XSRF-TOKEN: $XSRF" \
-H "Cookie: laravel_session=$SESSION" \
-H "X-Livewire: 1" \
-d '{"components": [{"snapshot": "<SNAPSHOT_JSON>", "updates": {}, "calls": [{"path":"","method":"store","params":[]}]}]}'edit_products authorization (Github Advisory)./shopper/livewire/update from sessions associated with low-privilege staff accounts (those lacking edit_products); requests containing "method":"store" targeting the Media Livewire component.product.updated events dispatched without a corresponding edit_products permission check; access logs with POST requests to the Livewire update endpoint from browse-only user sessions.Upgrade shopper/framework to version 2.9.2 or later, which adds $this->authorize('edit_products') to the store() method in Media.php (commit bf72e27) (Shopper v2.9.2, Fix PR). No configuration-based workaround is available for unpatched versions; the only effective mitigation is applying the patch. As a temporary measure, administrators can restrict admin panel access to only fully trusted staff accounts until the upgrade is applied.
The vulnerability was reported by security researcher Vishal Shukla (@shukla304 / @therawdev) and credited in the GitHub Security Advisory. The maintainer (mckenziearts) addressed it promptly as part of a broader authorization hardening effort in PR #570, which also resolved five related advisories in the same release (Fix PR, Shopper v2.9.2). No significant broader media coverage or notable community discussion beyond the advisory itself has been identified.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."