Sicherheitslücke in Shopware – Status „kritisch“
Shopware hat direkt nach der Veröffentlichung der Version 6.7.8.0 eine neue Version 6.7.8.1 herausgebracht. Grund dafür waren Sicherheitslücken der Bedrohungsstufe „kritisch“. Betroffen von dieser Lücke sind alle Shopware Versionen bis einschließlich 6.7.8.0.
Das aktuelle Shopware Security Release v6.7.8.1 bringt mehrere sicherheitsrelevante Optimierungen mit sich. Die Änderungen betreffen zentrale Bereiche wie App‑Registrierung, Login‑Prozesse und die Validierung von Order‑Daten. Die folgenden Abschnitte zeigen die wichtigsten Anpassungen in neuer Struktur und klarer Form.
Verbesserte Sicherheit bei der erneuten App‑Registrierung
Ein zentraler Bestandteil des Releases ist die Überarbeitung des App‑Reregistrierungsprozesses. Neu ist ein asynchroner Mechanismus zur Rotation von App‑Secrets, der sowohl über die API als auch über die CLI nutzbar ist.
Die Aktualisierung umfasst:
- Einführung eines neuen API‑Endpoints und eines CLI‑Befehls zur Secret‑Rotation
- Anpassung der Registrierungslogik, damit Secret‑Updates unterstützt werden
- Implementierung eines zweistufigen Signatur‑Verfahrens zur Bestätigung der Änderungen
Durch diese doppelte Signaturprüfung wird der Prozess deutlich sicherer. Nur autorisierte Parteien können App‑Secrets erneuern, was Manipulationen verhindert.
Anpassungen im Login‑Verhalten für mehr Schutz
Bisheriges Verhalten
Beim Login in Shopware lief der Ablauf ungefähr so:
Benutzer gibt E-Mail + Passwort ein.
System sucht einen Kunden mit dieser E-Mail.
Falls kein Kunde existiert, wurde eine CustomerNotFoundException ausgelöst und der Betrachter informiert, dass es diese E-Mail Adresse nicht gibt.
Falls Kunde existiert, aber Passwort falsch ist, kam eine BadCredentialsException.
Damit konnte ein Angreifer indirekt unterscheiden:
E-Mail existiert nicht → Fehlermeldung
E-Mail existiert → andere Fehlermeldung
Durch automatisierte Abfragen konnte man so gültige E-Mail-Adressen im Shop ermitteln (User Enumeration).
Neues Verhalten
Mit dem Update ändern sich auch die Reaktionen des Systems auf fehlgeschlagene Login‑Versuche. Die LoginRoute und der AccountService lösen nun keine CustomerNotFoundException mehr aus, wenn eine nicht existierende E‑Mail genutzt wird.
Stattdessen wird eine BadCredentialsException ausgegeben. Es wird also nur ganz allgemein mitgeteilt, das die Login-Daten nicht stimmen. Dadurch bleibt verborgen, ob eine E‑Mail‑Adresse im System existiert. Diese Anpassung erschwert das Ausspähen gültiger Accounts über Fehlermeldungen.
Präzisere Validierung des deepLinkCode‑Filters
Im Bereich der Bestellabfragen wurde die Validierung des deepLinkCode‑Filters verbessert. Die Methode OrderRoute::load stellt nun sicher, dass der Filter korrekt als Instanz von EqualsFilter vorliegt. Das sorgt für eine sauberere Verarbeitung und verhindert fehlerhafte Filtertypen.
Sicherheitsupdate ohne vollständiges Shop‑Update möglich
Für Shops, die nicht sofort auf die neue Version wechseln möchten, gibt es eine Alternative. Das Shopware 6 Sicherheits-Plugin kann installiert oder aktualisiert werden. Damit lassen sich die sicherheitsrelevanten Anpassungen ebenfalls einspielen, ohne das gesamte System zu aktualisieren.

