Read the docs
TI-2026-83413 Aliases CVE-2026-62990

Stored XSS via SVG and HTML uploads in Shopper admin panel

Priority HIGH 73CWE-269Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
Required
Attack complexity
Low
Impact type
Privilege escalation, Cross-site scripting
Confidentiality · integrity · availability
High · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-269 and CWE-79.

Summary

Shopper versions from 2.0.0 before 2.10.1 and from 3.0.0-beta.1 before 3.0.0-beta.3 are affected. Authenticated staff with a content-upload permission can store SVG or HTML files that run script on the administrator's own origin when an administrator opens them (CWE-79). The script can then create a new administrator account with a chosen password that remains after the uploaded file is deleted.

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

Description from the CNA

Shopper is a Headless e-commerce Admin Panel. In versions from 2.0.0 prior to 2.10.1 and in the 3.0.0 prereleases beta.1 and beta.2, authenticated back-office staff with a content-upload permission can store executable media on the administrator's own origin. In the 2.x implementation, relevant upload permissions include `edit_products` or `add_brands`, and `packages/admin/config/media.php` allows `image/svg+xml` in every media collection, including image fields whose image/* validation also accepts SVG. The product files collection in `packages/admin/src/Livewire/Components/Products/Form/Files.php` has no MIME restriction and accepts `text/html` as well. Media is served inline from the `public` disk under `/storage/` with its own content type, without `Content-Disposition: attachment` or a `Content-Security-Policy`. When an administrator opens an uploaded HTML or SVG file, stored script executes in that administrator's session. In 2.x, the script can invoke `packages/admin/src/Livewire/SlideOvers/CreateTeamMember.php`, whose `store()` checks `access_setting` held by the viewing administrator but trusts client-supplied `role_id`, to create a new attacker-controlled administrator with a chosen password. This account persists after the uploaded file is deleted and gives access to customer data, orders, settings, and user/role management; the same script can exfiltrate data or grant permissions to the attacker's account. Direct account creation by the low-privileged uploader is blocked, so exploitation requires the administrator to open the file. The 3.x prerelease line already excludes SVG but still allows executable product files. This issue is fixed in versions 2.10.1 and 3.0.0-beta.3.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00243 15th percentileScored 2026-11-07
Fix Fixed shopper (shopperlabs): 2.10.1, 3.0.0-beta.3

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
shopperlabsshopper2.0.0 to before 2.10.1; 3.0.0-beta.1 to before 3.0.0-beta.32.10.1, 3.0.0-beta.3Patch availableCNA
  • shopper Vendorshopperlabs Affected 2.0.0 to before 2.10.1; 3.0.0-beta.1 to before 3.0.0-beta.3 Fixed in 2.10.1, 3.0.0-beta.3 Patch available CNA

Remediation

Upgrade Shopper to version 2.10.1 for the 2.x line or to version 3.0.0-beta.3 for the 3.x prerelease line.

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

  • Fix · CNA shopper (shopperlabs) Fixed in 2.10.1, 3.0.0-beta.3

Timeline

  1. 2026-10-30 Threatist record created from CVE-2026-62990
  2. 2026-11-01 Priority changed: MEDIUM → LOW
  3. 2026-11-05 CISA SSVC decision points changed
  4. 2026-11-05 Priority changed: LOW → HIGH

References

  • TI-2026-40978 Missing authorization in shopperlabs shopper CVSS 3.1HIGH 8.1
  • TI-2026-83412 Missing authorization in Shopper lets staff delete product variants CVSS 3.1HIGH 8.1
  • TI-2026-40979 Shopper: Unauthorized inventory stock manipulation via unlocked variant property in VariantStock component CVSS 3.1HIGH 8.1
  • TI-2026-40977 Shopper: Missing authorization on product removal actions in CollectionProducts component CVSS 3.1HIGH 8.1
  • TI-2026-40981 Shopper: Negative discount values accepted and propagated through order calculation pipeline CVSS 3.1MEDIUM 6.5
  • TI-2026-35241 Shopper: Race condition on Discount.usage_limit allows silent over-redemption CVSS 3.1MEDIUM 5.9
See all 16 →

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences