Sylius Security-Release 1.12.25 / 1.13.17 / 1.14.20 / 2.1.16 / 2.2.9: JWT-Audience-Verwechslung erlaubt Admin-Übernahme über die Shop-API
Sylius hat am 2. September 2026 die Versionen 1.12.25, 1.13.17, 1.14.20, 2.1.16 und 2.2.9 veröffentlicht und behebt darin vier Sicherheitslücken. Die schwerwiegendste, GHSA-f6mx-qxjc-55xf (CVSS 8.8, hoch), erlaubt es einem Shop-Kunden mit der E-Mail-Adresse eines Administrators, sich über die Shop-API ein Token zu holen und damit vollen Zugriff auf die Admin-API zu erhalten. Drei weitere Advisories betreffen Password-Reset-Token-Diebstahl, manipulierbare Bestellsummen nach Zahlungsfreigabe und ungeprüfte Payment-Request-Aktionen.
TL;DR — 90 Sekunden
Das Sylius-Sicherheitsrelease vom 2. September 2026 behebt vier unabhängige Lücken. GHSA-f6mx-qxjc-55xf (CVSS 8.8) erlaubt Admin-Übernahme: Shop- und Admin-API nutzen dieselbe JWT-Signatur ohne Audience-Kennung, ein Kunde mit der E-Mail-Adresse eines Administrators kann sich als dieser authentifizieren. GHSA-77w3-2367-7xvq (CVSS 8.8) erlaubt Diebstahl von Admin-Password-Reset-Tokens über einen manipulierten Host-Header. GHSA-vv4h-q2x8-74g4 (CVSS 7.5) erlaubt es, die Bestellsumme nach bereits erfolgter Zahlungsfreigabe zu erhöhen, sodass Sylius die höhere Summe fälschlich als vollständig bezahlt markiert. GHSA-2rv4-pjmm-7fxf (CVSS 6.5) erlaubt Kunden, über die Shop-API Rückerstattungen auf eigene, bereits bezahlte Bestellungen auszulösen. Fix für alle vier: Update auf 1.12.25, 1.13.17, 1.14.20, 2.1.16 oder 2.2.9, je nach eingesetzter Linie.
Was ist das Problem?
Alle vier Lücken betreffen Grenzen zwischen Shop- und Admin-Bereich beziehungsweise zwischen Zahlungs- und Bestelllogik, die in der Praxis zu lose gezogen waren.
Bei GHSA-f6mx-qxjc-55xf stellen Admin- und Shop-API-Firewall JWTs mit derselben Signaturkonfiguration aus, ohne eine Audience-Angabe, die den Ausstellungskontext kennzeichnet. Beide Firewalls lösen Nutzer anhand der E-Mail-Adresse auf. Registriert sich ein Kunde mit der E-Mail-Adresse eines bestehenden Administrators, erhält er ein regulär gültiges Shop-Token, das die Admin-API akzeptiert und dem Administratorkonto zuordnet.
Bei GHSA-77w3-2367-7xvq leitet die Passwort-Reset-Funktion die Basis-URL für den Reset-Link aus dem eingehenden Host-Header ab, statt eine feste, vertrauenswürdige Origin zu verwenden. Ein Angreifer, der lediglich die E-Mail-Adresse eines Administrators kennt, kann eine Reset-Anfrage mit manipuliertem Host-Header stellen; der Reset-Link im Postfach des Administrators verweist dann auf die Domain des Angreifers, der so an das Reset-Token gelangt.
Bei GHSA-vv4h-q2x8-74g4 berechnet Sylius die Bestellsumme neu, wenn sich der Warenkorbinhalt ändert, auch nachdem ein Zahlungs-Gateway bereits einen kleineren Betrag erfolgreich erfasst hat. Der bestehende Payment-Datensatz wird dabei auf die neue, höhere Summe überschrieben und weiterhin als vollständig bezahlt markiert, obwohl das Gateway nur den ursprünglichen, niedrigeren Betrag erfasst hat.
Bei GHSA-2rv4-pjmm-7fxf validiert der Shop-API-Endpunkt für Payment-Requests den übergebenen action-Parameter nicht gegen eine Positivliste. Kunden können dadurch Aktionen wie refund auf eigene, bereits bezahlte Bestellungen auslösen, ohne dass administrative Rechte oder eine CSRF-Interaktion nötig wären.
Wer ist betroffen?
| Advisory | Betroffen | Fix | CVSS |
|---|---|---|---|
| GHSA-f6mx-qxjc-55xf (JWT-Audience-Verwechslung) | 1.11.0–1.12.24, 1.13.0–1.13.16, 1.14.0–1.14.19, 2.0.0–2.1.15, 2.2.0–2.2.8 | 1.12.25 / 1.13.17 / 1.14.20 / 2.1.16 / 2.2.9 | 8.8 (hoch) |
| GHSA-77w3-2367-7xvq (Password-Reset-Host-Poisoning) | Versionen vor 1.12.25 / 1.13.17 / 1.14.20 / 2.1.16 / 2.2.9 | 1.12.25 / 1.13.17 / 1.14.20 / 2.1.16 / 2.2.9 | 8.8 (hoch) |
| GHSA-vv4h-q2x8-74g4 (Order-Total-Inflation) | Sylius 2.x mit Payment-Request-Gateways vor 2.1.16 / 2.2.9 | 2.1.16 / 2.2.9 | 7.5 (hoch) |
| GHSA-2rv4-pjmm-7fxf (Payment-Request-Actions) | 2.0.0–2.1.15, 2.2.0–2.2.8 | 2.1.16 / 2.2.9 | 6.5 (mittel) |
Für keine der vier Lücken war zum Zeitpunkt dieses Beitrags eine eigene CVE-ID zugewiesen; alle vier sind ausschließlich über die jeweilige GitHub Security Advisory (GHSA) dokumentiert. Betreiber von Sylius-1.x-Installationen sind primär von den ersten beiden Advisories betroffen, da Payment-Request-API-Funktionen erst mit der 2.x-Linie eingeführt wurden.
Auswirkungen
GHSA-f6mx-qxjc-55xf hat das größte Schadenspotenzial: vollständiger Verlust der Zugriffskontrolle auf die Admin-API, einschließlich Zugriff auf Bestellungen, Produkte, Kundendaten und weitere Administratorkonten. Die Voraussetzung, dass ein Angreifer eine bestehende Administrator-E-Mail-Adresse kennt und als Kunde registriert, ist in der Praxis niedrig, da Administrator-E-Mail-Adressen häufig aus Impressum, Support-Kontakten oder früheren Datenlecks bekannt sind.
GHSA-77w3-2367-7xvq erfordert keinen Zugriff auf das E-Mail-Postfach des Administrators und ermöglicht bei Erfolg vollständige Kontoübernahme. GHSA-vv4h-q2x8-74g4 und GHSA-2rv4-pjmm-7fxf betreffen primär die finanzielle Integrität: Händler können Waren im Wert oberhalb der tatsächlich erfassten Zahlung ausliefern beziehungsweise Kunden können sich selbst Rückerstattungen auf bezahlte Bestellungen verschaffen.
Mitigation / Sofortmaßnahmen
Aktualisieren Sie auf die für Ihre Linie passende gepatchte Version:
# Composer-Update pro Linie
composer require sylius/sylius:1.12.25 --with-all-dependencies # 1.12.x
composer require sylius/sylius:1.13.17 --with-all-dependencies # 1.13.x
composer require sylius/sylius:1.14.20 --with-all-dependencies # 1.14.x
composer require sylius/sylius:2.1.16 --with-all-dependencies # 2.1.x
composer require sylius/sylius:2.2.9 --with-all-dependencies # 2.2.x
php bin/console doctrine:migrations:migrate --no-interaction
php bin/console cache:clear
Beachten Sie bei GHSA-f6mx-qxjc-55xf: Nach dem Update tragen neu ausgestellte Tokens aud- und principal_type-Claims. Vor dem Update ausgestellte Tokens besitzen diese Claims nicht und werden von beiden API-Bereichen nach dem Update abgelehnt. Bestehende Sessions und lang laufende API-Integrationen mit gespeicherten Tokens müssen sich nach dem Update neu authentifizieren.
Prüfen Sie zusätzlich, ob in Ihrer Konfiguration ein fester, vertrauenswürdiger Hostname für sicherheitsrelevante Links gesetzt ist, statt sich auf den eingehenden Host-Header zu verlassen (Symfony trusted_hosts-Konfiguration).
Detection / Prüfung
Prüfen Sie Ihre Zugriffslogs auf folgende Indikatoren:
# Admin-API-Zugriffe mit ungewöhnlichen Token-Ausstellungszeitpunkten
grep "POST /api/v2/admin" access.log | grep -v "bekannte-Admin-IPs"
# Passwort-Reset-Anfragen mit unerwartetem Host-Header
grep "POST /api/v2/admin/password-reset" access.log
# Ungewöhnliche refund-Aktionen auf Shop-Payment-Request-Endpunkten
grep "payment-requests" access.log | grep -i "refund"
Prüfen Sie zudem in der Datenbank, ob Kundenkonten existieren, deren E-Mail-Adresse mit der eines Administratorkontos übereinstimmt — das ist die Grundvoraussetzung für GHSA-f6mx-qxjc-55xf und sollte unabhängig vom Patch-Status unterbunden werden.
Betreiberempfehlung
Akut handeln, wenn: Sie eine Sylius-Installation unterhalb von 1.12.25 / 1.13.17 / 1.14.20 / 2.1.16 / 2.2.9 betreiben, insbesondere mit einer öffentlich erreichbaren Admin-API. Patchen Sie umgehend und prüfen Sie auf E-Mail-Kollisionen zwischen Kunden- und Administratorkonten.
Beobachten genügt, wenn: Sie bereits auf eine der gepatchten Versionen aktualisiert haben und die Admin-API ausschließlich aus einem vertrauenswürdigen Netzwerk erreichbar ist. Ein Blick auf die Detection-Hinweise für die Zeit vor dem Update bleibt dennoch empfehlenswert.
Häufig gestellte Fragen zum Sylius-Sicherheitsrelease vom 2. September 2026
Haben diese vier Lücken eigene CVE-Nummern?+
Nein, zum Zeitpunkt dieses Beitrags war keiner der vier Lücken eine CVE-ID zugewiesen. Alle sind ausschließlich über ihre jeweilige GitHub Security Advisory (GHSA) dokumentiert.
Ist dieses Release dasselbe wie die Sylius-Security-Release 2.0.18/2.1.15/2.2.6?+
Nein. Das sind zwei unterschiedliche Releases mit unterschiedlichen Lücken. 2.0.18/2.1.15/2.2.6 wurde bereits an anderer Stelle in diesem Blog behandelt. Dieser Beitrag beschreibt das spätere Release vom 2. September 2026.
Betrifft GHSA-f6mx-qxjc-55xf auch Sylius 1.x?+
Ja. Die JWT-Audience-Verwechslung betrifft alle unterstützten Linien von 1.12 bis 2.2, da Shop- und Admin-API-Firewall in all diesen Versionen dieselbe Signaturkonfiguration ohne Audience-Trennung nutzen.
Was passiert mit bestehenden API-Tokens nach dem Update?+
Vor dem Update ausgestellte Tokens besitzen keine aud- oder principal_type-Claims und werden nach dem Update von beiden API-Bereichen abgelehnt. Clients müssen sich neu authentifizieren.
Reicht es, die Admin-API hinter eine Firewall zu legen, statt zu patchen?+
Das reduziert das Risiko für GHSA-f6mx-qxjc-55xf und GHSA-77w3-2367-7xvq, behebt aber nicht die Order-Total- und Payment-Request-Lücken, die über die Shop-API ausnutzbar sind und daher öffentlich erreichbar bleiben. Patchen bleibt in jedem Fall nötig.
Sind Sylius-1.x-Installationen von der Order-Total-Inflation betroffen?+
Nein. GHSA-vv4h-q2x8-74g4 und GHSA-2rv4-pjmm-7fxf betreffen die Payment-Request-API, die erst mit Sylius 2.x eingeführt wurde. 1.x-Installationen sind hiervon nicht betroffen.
Fazit
Das Sicherheitsrelease vom 2. September 2026 bündelt vier voneinander unabhängige, aber im Kern verwandte Probleme: zu lose gezogene Grenzen zwischen Shop- und Admin-Kontext sowie zwischen Zahlungs- und Bestelllogik. Wer Sylius mit öffentlich erreichbarer Admin-API und aktivierter Payment-Request-API betreibt, sollte alle vier Advisories als zusammenhängendes Paket behandeln und nicht nur die kritischste Lücke patchen.
Quellen
- Sylius: Security release 1.12.25, 1.13.17, 1.14.20, 2.1.16 and 2.2.9
- GHSA-f6mx-qxjc-55xf: JWT audience confusion allows shop customer to authenticate as administrator
- GHSA-77w3-2367-7xvq: Administrator password-reset link is built from the request Host header
- GHSA-vv4h-q2x8-74g4: Order total can be inflated after a Payment Request has started a gateway transaction
- GHSA-2rv4-pjmm-7fxf: Shop API accepts arbitrary PaymentRequest actions
Ich betreue Sylius-Shops laufend, von Sicherheitsupdates über API-Härtung bis zur Trennung von Shop- und Admin-Zugängen.
Sylius-Patch-Management, Absicherung der Admin- und Payment-APIs, Audits von Kunden- und Administratorkonten.
Plattform-Betrieb statt Beratung auf Papier: Ich prüfe, patche und härte Ihre Infrastruktur laufend.