JTL Shop Sicherheitshinweis:
SSTI/RCE über Smarty-Templating (CVE-2026-54390)
Status: Aktiv – wird fortlaufend aktualisiert.
Letzte Aktualisierung: 10.07.2026 – 15:30
Diese Seite bündelt alle verlässlichen Informationen zur Schwachstelle, zu Angriffsindikatoren (IOCs) und zu konkreten Handlungsempfehlungen. Wir aktualisieren sie, sobald neue Erkenntnisse vorliegen.
Teil 1 richtet sich an alle Shop-Betreiber und ist ohne technisches Vorwissen verständlich.
Teil 2 enthält technische Details und Angriffsindikatoren für dein Security-Team.
Hinweis: ladet euch das Plugin direkt von unserem Server herunter. Möchtet ihr nach der manuellen Installation auf die Version des ExtensionStores zurückgreifen, ist die manuelle Installation vorher zu entfernen.
Teil 1 – Für alle Shop-Betreiber
Dieser Abschnitt ist ohne technisches Vorwissen verständlich.
Nutzt du JTL-Hosting? Dann ist für dich bereits alles erledigt.
Wenn du das Hosting deines JTL Shops in unsere Hände gegeben hast, haben wir die Schwachstelle bereits für dich geschlossen. Du siehst dazu lediglich eine Meldung über eine modifizierte Datei und musst nichts weiter unternehmen. Solltest du dennoch etwas Auffälliges bemerken, wende dich bitte an den Support.
Was ist passiert?
Gemeinsam mit dem Sansec Threat Research Team haben wir eine Sicherheitslücke in JTL Shop identifiziert, die alle Versionen ab 5.0.0 betrifft. Wir haben sofort reagiert und für jede betroffene Version einen Patch bereitgestellt.
Vereinfacht gesagt: Über den Betreff einer E-Mail lässt sich Schadcode einschleusen. Angreifer können damit interne Schlüssel und Zugangsdaten auslesen und – bei neueren Shop-Versionen – Code auf dem Server ausführen.
Wichtig: Uns liegen inzwischen bestätigte Fälle vor, in denen die Lücke tatsächlich ausgenutzt wurde. Bitte werde zeitnah aktiv – auch dann, wenn dein Shop nach außen normal funktioniert.
Was du jetzt tun solltest
- Aktualisieren. Spiele die für dich passende gepatchte Version ein:
- Shop 5.5.4, 5.6.2 oder 5.7.2 (Downloads im JTL-Forum).
- Bist du auf 5.5.3, 5.6.1 oder 5.7.1, aktualisierst du über den jeweiligen Patch auf die nächsthöhere Version.
- Hilfe zum Vorgehen: Anleitung „JTL Shop updaten“ und „JTL Shop Build-Pakete“.
- Ältere Version? Nutzt du eine ältere Version (5.0.0–5.7.0) und kannst nicht aktualisieren, folge der Anleitung „JTL Shop updaten“.
- Auf Kompromittierung prüfen. Ein Update allein reicht nicht, wenn dein Shop bereits angegriffen wurde. Nutze den Kompromittierungs-Check (Plugin im JTL-Extension-Store) oder gib die Prüfschritte in Teil 2 an deinen Administrator / Dienstleister weiter.
- Im Zweifel Hilfe holen. Erstelle ein Support-Ticket im JTL-Kundencenter.
Warum ist die Prüfung so wichtig? Wurde dein Shop vor dem Patch angegriffen, können die Angreifer sich einen dauerhaften Zugang eingerichtet haben, der auch nach dem Update bestehen bleibt. Deshalb: erst patchen, dann prüfen.
Nach dem Update
- Auf eine gepatchte Version aktualisiert? Dann ist – nach der Kompromittierungsprüfung – nichts Weiteres zu tun.
- Ältere Version manuell gepatcht? Dann zeigt das Backend einen Hinweis auf eine modifizierte Datei. Für diese eine Datei ist das normal und wird erst durch ein späteres Versions-Update behoben:
/includes/src/Mail/Renderer/SmartyRenderer.php
Teil 2 – Technische Details und Angriffsindikatoren
Für dein Security-Team, deinen Administrator oder Dienstleister.
Kurzüberblick (TL;DR)
| Art der Schwachstelle | Server-Side Template Injection (SSTI) im E-Mail-Betreff über die Smarty-Template-Engine |
| CVE | CVE-2026-54390 |
| JTL-Vorgang | SHOP-9666 |
| Betroffen | Alle JTL Shop 5-Versionen ab 5.0.0 |
| Auswirkung | Auslesen von Blowfish-Key und Datenbank-Passwort; ab Shop 5.4.0 zusätzlich Remote Code Execution (RCE) |
| Entdeckung | Gemeinsam mit dem Sansec Threat Research Team |
| Ausnutzung | Aktive Ausnutzung in der Praxis bestätigt (Stand 09.07.2026) |
| Gepatchte Datei | /includes/src/Mail/Renderer/SmartyRenderer.php |
| Werkzeuge | YARA-Regeln (CVE-2026-54390) und Kompromittierungs-Check-Plugin verfügbar |
Die Schwachstelle im Detail
Die Schwachstelle ist eine Server-Side Template Injection (SSTI) im Betreff einer E-Mail: Über die Smarty-Template-Engine lässt sich Template-Code einschleusen, der serverseitig ausgewertet wird. Darüber können Angreifer den Blowfish-Key oder das Datenbank-Passwort auslesen. Ab Shop 5.4.0 ist zusätzlich eine Remote Code Execution (RCE) möglich.
Die Beschaffenheit der Lücke lässt keine zuverlässige Aussage darüber zu, ob ein einzelner Shop bereits vor der Entdeckung ausgenutzt wurde. In der Fläche ist die Ausnutzung inzwischen jedoch bestätigt.
Wie der Angriff abläuft
Der Patch schließt den Einstiegspunkt (die SSTI-Lücke). Wurde ein Shop schon vorher ausgenutzt, können die späteren Stufen auch nach dem Patchen aktiv bleiben – deshalb ist die Kompromittierungsprüfung entscheidend. Hinweis: Die genannten Dateinamen sind Beispiele aus analysierten Fällen und können abweichen.
- SSTI-Ausnutzung. Über einen manipulierten E-Mail-Betreff wird Smarty-Template-Code eingeschleust und serverseitig ausgeführt.
- Auslesen von Geheimnissen. Blowfish-Key und Datenbank-Zugangsdaten werden extrahiert. Bis 5.4.0 endet die Ausnutzung hier; ab 5.4.0 wird daraus vollständige Codeausführung (RCE), erst dadurch werden die folgenden Stufen möglich.
- Schaddateien (ab 5.4.0). Im Webroot werden eine interaktive Webshell (
site.php) und ein Recon-/Exfiltrations-Skript (s.php) abgelegt, das Zugangsdaten und weitere Geheimnisse ausliest und nach außen überträgt. - Persistenz. Die Webshell
site.phpüberlebt das Update – dieses ersetzt nur die verwundbare Renderer-Datei, nicht die separat abgelegte Backdoor. Das reine Update entfernt die Persistenz also nicht; die Backdoor muss gezielt entfernt werden. - Umleitung von Zahlungen. In einigen bestätigten Fällen wurde über die Datenbank eine getarnte Content-Box mit JavaScript angelegt, das im Checkout einen gefälschten Zahlungsdialog (iFrame) einblendet und den Zahlungsvorgang umleitet – in den bisher analysierten Fällen bei Vorkasse bzw. Überweisung. Der Kunde überweist dabei an ein Angreiferkonto statt an den Händler. Da der Code in der Datenbank sitzt, bleibt er auch nach dem Entfernen der Schaddateien aktiv und muss separat entfernt werden (siehe „Standardelemente → Footer/Boxen“).
Indicators of Compromise (IOCs)
Diese Liste wird laufend ergänzt. Das Fehlen einzelner Indikatoren schließt eine Kompromittierung nicht aus.
Dateibasierte Indikatoren
- Verdächtige oder unbekannte Dateien im Webroot-Verzeichnis, insbesondere:
site.php– abgelegte Webshells.php– Persistenz-Komponente, hält den Zugang nach dem Patch offen
- Andere nach dem 17.06.2026 neu angelegte oder veränderte PHP-Dateien im Web-Root
- Backend-Hinweis auf die modifizierte Datei
/includes/src/Mail/Renderer/SmartyRenderer.php– nach manuellem Patchen normal, kein Angriffsindikator.
Indikatoren im Bestellprozess
- Unerwarteter JavaScript-Code im Checkout, insbesondere ein eingeblendeter Zahlungsdialog, der nicht zu deinen konfigurierten Zahlarten gehört (in den bisher analysierten Fällen bei Vorkasse/Überweisung)
- Ein gefälschter Rabatt-Hinweis an einer Zahlart (in analysierten Fällen „7% Rabatt bei dieser Zahlungsmethode“), während echte Rabatt-Hinweise des Shops verschwinden
- Ausgeblendete PayPal-Express-Buttons oder unterdrückte native Rabatt-Kennzeichnungen im Checkout
- Eingeschleuste iFrames oder Umleitungen im Zahlungsprozess
Indikatoren in der Datenbank (JavaScript-Injektion / Skimming)
- Getarnte Content-Boxen mit eingeschleustem JavaScript – im Backend prüfbar unter „Standardelemente → Footer/Boxen“: Elemente, die ein
script-Tag oderscript src=…enthalten und nicht selbst eingebunden wurden - Einträge in der Tabelle
tboxsprache, deren FeldcInhalteinscript-Tag enthält - Einträge in der Tabelle
tboxenmit auffälligem Titel, insbesondere mit dem Präfixsys_box_(Suffix variiert je Angriff) - Zugehörige Sichtbarkeits-Einträge in der Tabelle
tboxensichtbar(koppeln die Box an eine Seitenposition, meist „bottom“) - Verweise auf eine externe, nicht selbst eingebundene Skript-Domain über
script src=…im Box-Inhalt (in einem analysierten Falloob.tecnomar63.us– Domain kann wechseln!)
Netzwerk- und Systemindikatoren
- Verdächtige Einträge in den Access-Logs seit dem 17.06.2026, insbesondere gehäufte Zugriffe auf
/site.php(Status 200, schwankende Antwortgrößen; sofern geloggt,GET /site.php?pr=002) - Ausgehende Verbindungen des Webserver-Users (möglicher Reverse-Shell-Hinweis)
- Einträge in der Crontab des Webserver-Users (
www-data) als Persistenzmechanismus - Vorkommen verdächtiger PHP-Funktionen:
passthru,shell_exec,system,popen,proc_open,exec(auch Base64-kodiert)
Erkennungsregeln (YARA)
YARA-Regelsatz zu CVE-2026-54390 zur Erkennung der beiden bislang bekannten Malware-Dateien (Webshell und Recon-/Exfiltrations-Skript): jtl-shop-CVE-2026-54390.yar_.zip. Bewusst als Download verlinkt statt als Anhang – die Regel enthält Strings wie shell_exec, die von Mail-/Malware-Scannern geblockt werden.
So prüfst du deinen Shop
- Access-Logs prüfen. Durchsuche die Access-Logs seit dem 17.06.2026 nach verdächtigen Aktivitäten.
- Dateien prüfen. Kontrolliere veränderte oder unbekannte Dateien – insbesondere im Webroot-Verzeichnis.
- Boxen prüfen. Im Backend unter „Standardelemente → Footer/Boxen“ nach Elementen mit JavaScript suchen.
- Admin-Zugänge sichern. Kontrolliere alle Admin-Accounts und ändere sicherheitshalber die Passwörter.
Zusätzliche Prüfungen nach Shop-Version
Ab Shop v5.4 – neue/veränderte PHP-Dateien seit dem Angriffszeitraum (Pfad zum Web Root anpassen):
find /var/www/shop5 -name "*.php" -newermt "2026-06-17" -ls
Vor Shop v5.4: Die Lücke ermöglicht das Auslesen der Datenbank-Zugangsdaten. Das bedeutet nicht automatisch einen Datenbankzugriff – bei einer MySQL/MariaDB-Standardinstallation ist die Datenbank nicht von extern erreichbar. Prüfe dennoch: Ist deine Datenbank von extern erreichbar? Falls ja, sofort absichern und alle Credentials als kompromittiert behandeln.
Für technisch versierte Nutzer (ab v5.4):
# Crontab des Webserver-Users (oft für Persistenz genutzt)
crontab -l -u www-data
# Ausgehende Verbindungen (kann Hinweis auf Reverse Shell sein)
ss -tp | grep "www-data\|apache"
Suche zusätzlich in Dateien nach verdächtigen PHP-Funktionen: passthru, shell_exec, system, popen, proc_open, exec (auch Base64-kodiert). Hinweis: kann False Positives erzeugen.
Prüfung der Datenbank auf Inhalte mit JavaScript (kann False Positives erzeugen, Ergebnisse müssen sorgfältig validiert werden):
-- CHAR(60) steht für die öffnende spitze Klammer, damit diese Seite den Code korrekt anzeigen kann
SELECT b.kBox, b.cTitel, s.cISO, s.cInhalt
FROM tboxen b
JOIN tboxsprache s ON s.kBox = b.kBox
WHERE s.cInhalt LIKE CONCAT('%', CHAR(60), 'script%')
OR b.cTitel LIKE 'sys_box_%';
Automatisierter Check. Zur schnellen Prüfung steht ein Kompromittierungs-Check als Plugin bereit: ecomsec Security Scan – Kmpromittierungs-Check für JTL Shop 5. Es erkennt die bislang bekannten Malware-Dateien und prüft, ob die SmartyRenderer.php gepatcht ist.
Bei Verdacht auf Kompromittierung
Sofort
- Shop offline nehmen (Wartungsmodus)
- Sicherheitspatch einspielen
- Alle Zugangsdaten rotieren: Shop-Admin, Datenbank, FTP, Zahlungsdienste, API-Keys
- Webshells und Backdoors entfernen (
s.php,site.phpu. a.) – verdächtige Dateien vorher für die Forensik sichern - Falls möglich: Datenbank-Backup von vor dem 17.06.2026 einspielen
Mittelfristig
- Integrity-Audit des Web-Roots durchführen
- Datenbank auf Manipulation prüfen (unbekannte Admin-Accounts, veränderte Zahlungsdaten)
- Falls Kundendaten abgeflossen sind: Datenschutzpflichten nach DSGVO prüfen
Bei schwerem Verdacht:
Beste Lösung bei bestätigter Kompromittierung: Shop inklusive Betriebssystem neu aufsetzen, Daten migrieren und auf Manipulation prüfen, alle Passwörter neu setzen.
Zeitleiste
| Datum | Ereignis |
|---|---|
| ~17.06.2026 | Veröffentlichung der Patches und der manuellen Patch-Anleitung; Beginn des relevanten Angriffszeitraums |
| 03.07.2026 | CVE-2026-54390 vergeben; YARA-Regeln veröffentlicht |
| 07.07.2026 | Kompromittierungs-Check erkennt beide Malware-Dateien und prüft den Patch-Stand |
| 09.07.2026 | Aktive Ausnutzung in der Praxis bestätigt (Skimming/JS-Injection im Checkout) |
| 10.07.2026 | Einrichtung dieser fortlaufend aktualisierten Vulnerability-Page; erweiterte Partner- und Kundenkommunikation |
| laufend | Untersuchung läuft; weitere Erkenntnisse und IOCs werden ergänzt |
Fragen?
Unser Support-Team hilft gern. Bitte erstelle wie gewohnt ein Support-Ticket im JTL-Kundencenter.
