Shopper: Unauthorized Inventory Stock Manipulation via Unlocked Variant Property in VariantStock
VariantStock.php exposes its $variant property without #[Locked], and stockAction() carries no ->authorize() chain, so any authenticated admin-panel session — including browse-only staff — can rebind the action to an arbitrary variant ID and rewrite its inventory count (CVE-2026-56829, CVSS 8.1, fixed in 2.9.2). Unlike a pure authorization miss, this one also lets the attacker redirect the write to a variant they were never scoped to touch, so a single low-privilege session can drain or inflate stock across the whole catalog. Patch to 2.9.2; if you can't patch immediately, audit inventory history for stock adjustments attributed to non-inventory-manager roles.