IT SBIT Services
Schneeberger
DEEN
CVE tracker

Shopper: Stored XSS via SVG and HTML uploads enables administrator creation

CVE-2026-62990High 8.7

← All vulnerabilities

Summary

Shopper is a headless e-commerce admin panel for Laravel. Authenticated back-office staff with product or brand upload rights can store SVG or HTML files that run script when an administrator opens them, because media is served inline from the same origin. The script can create a persistent administrator account with a chosen password, giving access to customer data, orders, settings and user roles. Exploitation requires an administrator to open the malicious file.

Affected

  • Shopper 2.0.0 up to 2.10.0 (before 2.10.1)
  • Shopper 3.0.0 prereleases beta.1 and beta.2 (before 3.0.0-beta.3)

Fixed in

  • Shopper 2.10.1
  • Shopper 3.0.0-beta.3

Workaround

Unknown.

  • Remove image/svg+xml from the media configuration and restrict HTML and executable uploads at the web server or storage layer.
  • Serve /storage/ media with Content-Disposition: attachment and a restrictive Content-Security-Policy.

Exploitation

  • Exploitation requires an authenticated user with edit_products or add_brands rights and an administrator who opens the uploaded file.
  • Not known to be exploited in the wild; not listed in CISA KEV.
  • No public proof-of-concept known at the time of writing.

Our recommendation

  • Update Shopper to 2.10.1 or 3.0.0-beta.3 (or a newer stable release) and check that the published config/shopper/media.php has been updated by hand.
  • Limit upload permissions to the staff who need them.
  • Review administrator accounts and recent uploads for unexpected entries, and remove any unknown accounts.
  • Restrict access to the admin panel to trusted networks or VPN where possible.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 23:15.

Original description (NVD)

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.

NVD references (8)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.