Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Shopper admin panel with any role
-
DeliveryOpen product editor to generate a Livewire wire request
-
ExploitIntercept wire AJAX request via browser dev tools or proxy
-
ExecutionReplace productId with target product's ID and modify pricing or inventory fields
-
PersistSubmit tampered wire payload to Livewire endpoint
-
ImpactServer persists unauthorized mutations without permission check
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a valid authenticated session in the Shopper admin panel (PR:L per CVSS - any role qualifies, including minimally trusted roles). No special server-side configuration is required - the missing authorization exists in the default installation of Shopper prior to 2.8.0 across all affected Livewire sub-form components. Exploiting the cross-product targeting component additionally requires the ability to intercept and modify Livewire AJAX requests, which is achievable with standard browser developer tools (Network tab) or any HTTP interception proxy without elevated system access. Unauthenticated attackers cannot exploit this vulnerability - a valid panel login credential is a hard prerequisite. Exploitation is scoped to Shopper instances running versions prior to 2.8.0; patched instances are not affected. |
| Impact | CVSS 6.5 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N describes a network-reachable, low-complexity attack requiring only low-privilege authentication (any valid panel login), with high integrity impact and no confidentiality or availability impact. The real-world risk exceeds the medium CVSS score in multi-role deployments: any panel user - including customer support agents, catalog viewers, or other minimally trusted accounts - can silently alter product pricing and inventory for any product in the catalog, potentially enabling fraud (discounting items to $0), disrupting operations (zeroing stock), or poisoning SEO/shipping data. The cross-product tamperability via unlocked productId property further amplifies the blast radius beyond what the CVSS scope:unchanged designation implies operationally. No EPSS data was provided, so exploitation probability is inferred from CVSS signals only. The vulnerability is not listed in CISA KEV, and no standalone weaponized POC has been published - risk is therefore assessed as meaningful but not imminently mass-exploited. The low attack complexity and absence of user interaction requirements mean exploitation is trivially achievable by any authenticated panel user with access to browser developer tools. |
| Exploit ScenarioDerived | An authenticated Shopper panel user with a low-privilege role such as customer support opens the product editor for any product, then uses browser developer tools or an HTTP proxy to intercept the outbound Livewire AJAX wire request. The attacker replaces the productId property value with the ID of a different (arbitrary) product and modifies pricing or inventory fields, then resubmits the tampered wire payload to the server's Livewire endpoint. The server, lacking authorization checks on store(), persists the modified data for the targeted product without verifying the user holds edit_products permission. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 29, 2026
Privilege escalation in shopperlabs/shopper prior to 2.8.0 allows any authenticated admin panel user - regardless of assigned role - to mutate pricing, inventory, SEO metadata, shipping dimensions, and attached media for any product by exploiting missing authorization on Livewire sub-form component store() methods. Because the product ID was accepted as an unlocked public Livewire property, attackers could additionally target arbitrary products by tampering with the wire payload from the client side, not just products they otherwise interact with. No active exploitation confirmed (not in CISA KEV), and no standalone POC code has been published, though the remediation PR diff is publicly available.
RemediationAI
Upgrade shopperlabs/shopper to version 2.8.0 or later - this is the vendor-released patch confirmed by security advisory GHSA-h4mp-g9c6-xwph and implemented in PR #511 (https://github.com/shopperlabs/shopper/pull/511). The fix introduces the Livewire #[Locked] attribute on all resource ID properties to prevent client-side wire payload tampering, and adds $this->authorize() permission gate checks in store() and other mutating methods to enforce role-based access control. If an immediate upgrade to 2.8.0 is not feasible, restrict admin panel access exclusively to fully-trusted, high-privilege accounts as a compensating control - this eliminates the low-privilege escalation vector but does not remediate the underlying missing authorization flaw and may not be operationally acceptable in multi-role deployments. There is no known configuration toggle to disable the vulnerable Livewire components independently of disabling the product editor entirely.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Shopper is a Laravel-based headless e-commerce admin panel that uses Livewire, a full-stack component framework that communicates via AJAX-like wire requests containing serialized component state. In Livewire, public PHP properties are two-way synchronized with the client by default - without the #[Locked] attribute, a client can freely rewrite any public property (such as productId) in the wire payload before it is processed server-side. The affected sub-form components (Edit, Inventory, Seo, Shipping, Files under Products/Form/) each exposed a store() method that persisted user-submitted data without calling any authorization gate (i.e., without checking the edit_products permission). The root cause is CWE-862 (Missing Authorization) - the code authenticated the session but never verified the caller's role before allowing state mutation. The CPE cpe:2.3:a:shopperlabs:shopper:*:*:*:*:*:*:*:* with an upper version bound of 2.8.0 covers all affected releases. The PR #511 fix adds the #[Locked] PHP attribute to resource ID properties (locking them server-side against client tampering) and inserts $this->authorize() calls in mutating methods to enforce Laravel permission gates.
Know when Shopper gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Shopper is a Headless e-commerce Admin Panel. Prior to 2.8.0, Sub-form Livewire components used in the product editor (Edit, Inventory, Seo, Shipping, Files) had no authorization on their store() method. Any authenticated panel user, regardless of role, could mutate any product's pricing, stock, SEO metadata, shipping dimensions, and attached media without holding edit_products. The affected components accepted the product ID as a public Livewire property without #[Locked], so an attacker could also target an arbitrary product by tampering with the wire payload from the client. This vulnerability is fixed in 2.8.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Privilege escalation in Shopper headless e-commerce admin panel prior to version 2.8.0 allows any low-privilege authenti
Privilege escalation in Shopper 2.0.0 through 2.5.x allows an authenticated admin-panel user who holds only the access_d
Stored cross-site scripting in the Shopper headless e-commerce admin panel (2.0.0 up to but not including 2.10.1, plus 3
Authorization bypass in Shopperlabs Shopper headless e-commerce admin panel prior to 2.8.0 allows authenticated low-priv
Permanent deletion of product variants in Shopper's admin panel is possible for any authenticated staff member who holds
Missing authorization enforcement in the Shopper headless e-commerce admin panel (all versions prior to 2.8.0) allows an
Shopper versions prior to 2.10.1 expose administrator and staff profile records to low-privileged admin-panel users thro
Discount over-redemption via race condition in Shopper (shopperlabs/shopper prior to v2.8.0) allows concurrent unauthent
EUVD-2026-33408
GHSA-h4mp-g9c6-xwph
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB