Zum Inhalt springen
← Zurück zum Cyberlagebild
Zuletzt aktualisiert 11.09.2026 22:18

Shopping privilege escalation through missing authorization in Settings components

CVSS –1 Quelle

Beschreibung

Vier Livewire-Komponenten im Einstellungsbereich zeigen destruktive Filament-Aktionen ("Löschen" / "Bearbeiten"), die **keine serverseitige Autorisierung durchführen. Jeder authentifizierte Benutzer, der die Einstellungen-Seiten erreichen kann – d.h. nur die grobe `access setting`-Berechtigung besitzt, **ohne ** ein Administrator ist und **ohne ́delete *`/`edit *`-Berechtigung – kann Steuerzonen, Steuersätze, Versandzonen und Carrier-Optionen löschen, indem er die Komponentenaktion direkt über den Livewire-Endpunkt aufruft. Diese Aufzeichnungen befinden sich auf dem Shopfront-Checkout-Pfad, so dass das Löschen sie die Versandratenberechnung bricht, regional begrenzte Zahlungsmethoden entfernt und die Steuerauflösung an der Kasse korrumpiert. Dies ist inkonsistent mit dem Rest des Administrators, wo destruktive Aktionen durch granulare Berechtigungen (z.B. `Settings/Locations/Index` verwendet `->authorize('delete inventories')` und `Order/Detail`-Gatter, die Aktionen mit `edit orders` mutieren). ## Betroffene Komponenten | Component | File | Unauthorized action | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Details Die Einstellungen Seiten mounten diese als Kind Livewire Komponenten. Die übergeordnete Seite autorisiert `access setting` (z. B. `Pages/Settings/Taxes.php:29`), aber die untergeordneten Komponenten überprüfen die Autorisierung nicht erneut und ihre destruktiven Aktionen tragen keine `->authorize()`. Da jede Livewire-Komponente ihre eigenen `/livewire/update`-Anforderungen verarbeitet, wird die Aktion rein auf dem Seiten-Gate `access setting` ausgeführt – es gibt keine Berechtigung pro Ressource und `delete zones`/ `delete taxes`-Berechtigungen werden vom Seeder nicht einmal generiert (`packages/admin/database/seeders/PermissionsTableSeeder.php`). `ZoneShippingOptions::deleteAction()` ist der klarste Fall – es löscht durch eine ID direkt aus den Client-Aktionsargumenten ohne Scoping und ohne Berechtigungsprüfung: ``php // packages/admin/src/Livewire/Components/Settings/Zones/ZoneShippingOptions.php public function deleteAction(): Action { return Action::make('delete') ->requiresConfirmation() // ... no ->authorize(), no ->visible() ->action(function (array $arguments): void {CarrierOption::query()->find($arguments['id'])->delete(); // client-controlled id // ...}; } `` ## Proof of Concept Confirmed with the pro ..

Hersteller
Produktshopper/framework
Produktfamiliecomposer
Betroffene Versionen>= 2.0.0, < 2.9.2
Behobene Versionen2.9.2

Quellen & weiterführende Informationen

Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.

Was ist zur Behebung zu tun?

Auf eine behobene Version aktualisieren: 2.9.2.

PrioritätGrün
EinordnungPlanbar behandeln und überwachen.

Empfohlene Schritte

  • Betroffene Systeme identifizieren: shopper/framework.
  • Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
  • Update/Rollout auf behobene Version vorbereiten und priorisiert einspielen.
  • Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.

Übergangsmaßnahmen

  • Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
  • WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
  • Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.
  • Administrative Zugänge besonders absichern: MFA, Passwortrotation, Session-Invalidierung.