JTL-Connect 2026 · 2. Oktober · XPOST Köln — Early-Bird-Ticket ab 79 €, nur noch bis 31. Juli. Jetzt Ticket sichern

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.

Download Plugin

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.

Bin ich betroffen?

Betroffen sind alle JTL Shop 5-Versionen ab 5.0.0. Deine aktuelle Version findest du im Informations-Widget des Backends unter /admin.

Was du jetzt tun solltest

  1. Aktualisieren. Spiele die für dich passende gepatchte Version ein:
  2. Ältere Version? Nutzt du eine ältere Version (5.0.0–5.7.0) und kannst nicht aktualisieren, folge der Anleitung „JTL Shop updaten“.
  3. 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.
  4. 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.

  1. SSTI-Ausnutzung. Über einen manipulierten E-Mail-Betreff wird Smarty-Template-Code eingeschleust und serverseitig ausgeführt.
  2. 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.
  3. 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.
  4. 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.
  5. 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 Webshell
    • s.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 oder script src=… enthalten und nicht selbst eingebunden wurden
  • Einträge in der Tabelle tboxsprache, deren Feld cInhalt ein script-Tag enthält
  • Einträge in der Tabelle tboxen mit auffälligem Titel, insbesondere mit dem Präfix sys_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 Fall oob.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

  1. Access-Logs prüfen. Durchsuche die Access-Logs seit dem 17.06.2026 nach verdächtigen Aktivitäten.
  2. Dateien prüfen. Kontrolliere veränderte oder unbekannte Dateien – insbesondere im Webroot-Verzeichnis.
  3. Boxen prüfen. Im Backend unter „Standardelemente → Footer/Boxen“ nach Elementen mit JavaScript suchen.
  4. 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.php u. 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.

Changelog dieser Seite

10.07.2026 – Erstveröffentlichung: Schwachstellenbeschreibung, IOCs (site.php, s.php, Checkout-Skimming), Prüf- und Remediationsschritte, YARA- und Plugin-Hinweis.