ZeroHour

CVE-2026-56829

niche

Unauthorized inventory changes in Shopper admin via unlocked Livewire variant property

CVSS 3.1
8.1 high
EPSS
Published
()
Modified
AI analysis

CVE-2026-56829 is a missing-authorization flaw (CWE-862) in the VariantStock Livewire component of the Shopper e-commerce framework's admin panel. The component declares its model binding as a plain public $variant property without the #[Locked] attribute, and its stockAction() action carries no ->authorize() check, so an authenticated admin-panel user can tamper with the Livewire wire payload to point the action at any variant ID in the database. As a result, any staff account with a valid panel session — even one holding only browse-level permissions and no product-edit rights — can add or subtract stock quantities on arbitrary variants, corrupting inventory integrity (enabling overselling or concealment of stock movements). All stores running the affected Shopper admin package are exposed, though exploitation requires an authenticated panel account, so single-operator shops face minimal risk. No public proof-of-concept, in-the-wild exploitation, or KEV listing is currently known.

What to do: Upgrade Shopper to the patched release indicated in the vendor's security advisory; as an interim fix, add the #[Locked] attribute to the $variant property and chain an ->authorize() permission check (e.g., a product-variant edit permission) onto the stock Action in VariantStock.php. Review recent inventory mutations for unexplained adjustments and limit admin-panel accounts to trusted staff.

Affected
Shopper (Laravel e-commerce framework, admin panel — packages/admin/src/Livewire/Components/Products/VariantStock.php)
Estimated exposure
nicheunknown (plausibly hundreds to low thousands of self-hosted stores; no public install-count basis) — Shopper is a small open-source Laravel e-commerce package with no published active-install metrics, and exploitation additionally requires an authenticated admin-panel session, so the plausibly affected population is at most a…

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, packages/admin/src/Livewire/Components/Products/VariantStock.php exposes stockAction() without edit_product_variants authorization and leaves public $variant client mutable because it lacks the Livewire Locked attribute. Any authenticated admin-panel user, including staff with only browse_products, can select an arbitrary product variant and inventory location through component state, then submit a positive or negative quantity adjustment. This permits browse-only staff to inflate stock, reduce stock, or force out-of-stock states for variants outside the current page. 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-g3f9-g5vj-p62f (high)

In the news

No ingested article mentions this CVE yet.