CVE-2026-47743
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
W panelu administracyjnym Shopper (headless e-commerce) przed wersją 2.8.0 wykryto trzy powiązane defekty: brak blokady identyfikatorów modeli Eloquent w komponentach Livewire umożliwiał manipulację danymi, przesyłanie hasła w postaci jawnego tekstu przez ukryte pole formularza prowadziło do ujawnienia wrażliwych danych, a pole kodu kreskowego produktu było renderowane bez odpowiedniego escapingu, co pozwalało na trwałe przechowywanie złośliwego kodu XSS.
Ocena ryzyka
Organizacja narażona jest na kradzież sesji administratora, eskalację uprawnień oraz wyciek haseł w postaci jawnej, co może prowadzić do przejęcia kont i nieautoryzowanych działań w systemie e-commerce.
Rekomendacja
Należy niezwłocznie zaktualizować Shopper do wersji 2.8.0 lub nowszej, która zawiera poprawki dla wszystkich trzech defektów.
Inne podatności w Shopper
Zobacz wszystkie- CVE-2026-47744Krytyczne
Shopper, panel administracyjny e-commerce headless, przed wersją 2.8.0 zawiera dwie wady autoryzacji w ustawieniach zespołu. Umożliwiają one każdemu uwierzytelnionemu użytkownikowi przejęcie systemu RBAC, tworzenie nowych ról, usuwanie innych użytkowników (w tym administratorów) oraz eskalację uprawnień do pełnego administratora panelu.
- CVE-2026-47745Średnie
Shopper przed wersją 2.8.0 nie sprawdza uprawnień dla akcji włączania/wyłączania, edycji i usuwania w tabelach admina dla PaymentMethods, Currencies i Carriers. Użytkownik z niskimi uprawnieniami może wyłączyć metody płatności, zmienić domyślną walutę lub wyłączyć przewoźników.
- CVE-2026-47742Średnie
Shopper przed wersją 2.8.0 zawiera podatność w komponentach Livewire używanych w edytorze produktów (Edit, Inventory, Seo, Shipping, Files), gdzie metoda store() nie sprawdza autoryzacji. Każdy uwierzytelniony użytkownik może modyfikować ceny, stany magazynowe, metadane SEO, wymiary wysyłki i załączniki dowolnego produktu.
- CVE-2026-47741Średnie
W Shopper, headless e-commerce panelu administracyjnym, przed wersją 2.8.0, funkcja CreateOrderFromCartAction::execute tworzyła zamówienie przed sprawdzeniem i inkrementacją licznika total_use rabatu. Przy współbieżnym obciążeniu (Black Friday, wyprzedaż błyskawiczna, wiralny kupon) globalny limit użycia był cicho przekraczany: zamówienia były zatwierdzane z pełnym rabatem, podczas gdy licznik blokował się na limicie. Sprzedawca nie miał sygnału o nadmiernym wykorzystaniu rabatu.
- CVE-2026-47740Wysokie
Shopper, panel administracyjny e-commerce typu Headless, przed wersją 2.8.0 zawiera podatność polegającą na tym, że wiele akcji Filament w szczegółach zamówienia i tabeli wysyłek może być wywoływanych przez uwierzytelnionego użytkownika o niskich uprawnieniach bez wymaganych uprawnień do modyfikacji zamówień. Akcje takie jak anulowanie, oznaczenie jako zapłacone, ukończone, przechwycenie płatności, archiwizacja i rozpoczęcie przetwarzania były dostępne z uprawnieniami tylko do odczytu read_orders, a nie wymaganymi edit_orders. Funkcja capturePayment mogła faktycznie przechwycić środki w systemie płatności. Użytkownik z dostępem tylko do odczytu mógł zmieniać cykl życia każdego zamówienia i inicjować rzeczywiste przechwycenia płatności.
Oryginalny opis (angielski, źródło NVD)
Shopper is a Headless e-commerce Admin Panel. Prior to 2.8.0, three related defects on admin Livewire components allowed data tampering, sensitive data disclosure, and stored XSS. First, several Livewire components in the admin panel exposed Eloquent model identifiers as public properties without the `#[Locked]` attribute. An authenticated user could rewrite the wire payload from the browser to target any record id, bypassing the implicit scoping enforced by the page routing. Second, `Customers/Create::store()` re-passed a `Hidden` `_password` form field straight into the create payload. The plaintext password was rendered into the HTML and transported through the Livewire snapshot in clear text, exposing credentials in the page DOM and in any logging that captures Livewire payloads. Finally, the product barcode field was rendered through `DNS1DFacade::getBarcodeHTML()` with `{!! !!}`. An attacker with `edit_products` permission could persist malicious payload in the barcode field that would execute in the browser of any admin user viewing that product, enabling session theft and privileged-action chaining. Starting in v2.8.0, all vulnerable Livewire model identifiers are now marked `#[Locked]`; `Customers/Create` no longer round-trips the password through a Hidden form field; the plaintext password is hashed at action boundary and never returned to the client; and the product barcode rendering now escapes the value before passing it to the barcode generator and the output is wrapped in an `<svg>` context that does not interpret event handlers. No known workarounds are available.

