Liebe Kunden,

uns wurde heute eine kritische Sicherheitslücke gemeldet, die JTL-Shop 4 bis einschließlich Version 4.06.17 betrifft. Es besteht Ihrerseits dringender Handlungsbedarf, um diese Sicherheitslücke für Ihren JTL-Shop zu schließen. Nach unseren jetzigen Informationen ist bisher kein Schaden in Form von Datendiebstahl entstanden, jedoch sollten Sie das Problem umgehend beheben, um dies zu verhindern.

Im Folgenden finden Sie dazu eine entsprechende Anleitung.

Hosting-Kunden bei JTL mit JTL-Shop 4 haben wir bereits automatisch mit einem Sicherheits-Patch versorgt. JTL-Shop 5 ist nicht betroffen.  

Die technischen Hintergründe

Bei der Sicherheitslücke handelt es sich um eine SQL-Injection im Weiterleitungs-Modul des JTL-Shop 4, welche durch Präparieren des Request Paths in der Shop-URL ausgenutzt werden kann. Dabei wird der Request Path ungefiltert in eine SQL-Abfrage übernommen, welche nicht durch Prepared Statements abgesichert ist.

Die Lücke wird direkt geschlossen, indem die betroffene SQL-Abfrage in ein sogenanntes "Prepared Statement" umgeschrieben wird.

So schließen Sie die Sicherheitslücke

Wenn Sie JTL-Shop 4.06.17 nutzen

Wenn Sie JTL-Shop 4.06.17 nutzen, ersetzen Sie bitte die Datei classes/class.JTL-Shop.Redirect.php durch die entsprechende PHP-Datei (patch-sqlinject-v4.06.17.zip), die Sie hier finden.

Unten in diesem Newsletter finden Sie eine detaillierte Schritt-für-Schritt-Anleitung, wie Sie dabei vorgehen!

Wenn Sie eine ältere Version von JTL-Shop nutzen

Wenn Sie eine ältere Version von JTL-Shop nutzen, ändern Sie bitte folgende Code-Zeilen manuell in der Datei classes/class.JTL-Shop.Redirect.php:
$oEntry = Shop::DB()->query(
    "SELECT *
        FROM tredirectreferer tr
        LEFT JOIN tredirect t
            ON t.kRedirect = tr.kRedirect
        WHERE tr.cIP = '{$cIP}'
        AND t.cFromUrl = '{$cUrl}' LIMIT 1", 1
);

Ersetzen durch:

$oEntry = Shop::DB()->queryPrepared(
    "SELECT *
        FROM tredirectreferer tr
        LEFT JOIN tredirect t
            ON t.kRedirect = tr.kRedirect
        WHERE tr.cIP = :cIP
            AND t.cFromUrl = :cURL LIMIT 1",
    [
        'cIP'  => $cIP,
        'cURL' => $cUrl
    ], 1
);

Bei älteren Versionen von JTL-Shop sind weitere Sicherheitslücken enthalten. Daher empfehlen wir Ihnen, erst ein Update auf Version 4.06.17 vorzunehmen, um den Fix dort einzuspielen.

Wie erkenne ich, ob die Sicherheitslücke in meinem JTL-Shop bereits ausgenutzt wurde?

In den von uns gemeldeten Fällen fanden wir in den Access-Logs der Shops folgende Anfragemuster:
Dabei handelt es sich offenbar um eine Prüfung, ob der Shop verwundbar ist. Das heißt: Bisher haben wir keine darauffolgenden Muster gefunden, die auf eine tatsächliche Ausnutzung der Lücke schließen lassen.

Sollten wir bei Shops in unserem Hosting feststellen, dass die Lücke ausgenutzt worden ist, werden wir Sie direkt kontaktieren.

Sollten Sie weitere Angriffsmuster in Ihrem Access-Log identifizieren, ist der Vorfall unter Umständen als sicherheitskritisch und datenschutzrelevant einzustufen.

Bitte informieren Sie in einem solchen Fall umgehend Ihren Datenschutzbeauftragten und ziehen weitere Experten, wie z.B. Ihren Hosting-Dienstleister, zur Analyse der Logs zur Hilfe.

Ihr Ansprechpartner bei Rückfragen

Unser Support-Team steht Ihnen bei Rückfragen gerne zur Verfügung. Bitte erstellen Sie wie gewohnt ein Support-Ticket im JTL-Kundencenter.

Mit freundlichen Grüßen
Ihr Team der JTL-Software-GmbH

Schritt-für-Schritt-Anleitung, um den Sicherheitsfix in JTL-Shop 4.06.17 einzuspielen

Laden Sie den Patch über diesen Link herunter und entpacken diesen (z.B. mit 7zip, WinZip oder der Windows-Funktion) "hier"):
Wenn Sie danach einen "classes" Ordner sehen, sind Sie bereit für den nächsten Schritt:
Um den Patch manuell in Ihrer JTL-Shop-Version 4.06.17 einzuspielen, benötigen Sie ein Programm wie FileZilla, das Sie z. B. hier downloaden können.

Nach dem Start von FileZilla sehen Sie folgenden Screen:
Links oben bei "Host", "Username", "Passwort" und "Port" müssen Sie Ihre FTP-Zugangsdaten eintragen. Sollten Ihnen diese nicht vorliegen, kann Ihr Hosting-Dienstleister helfen. Große Hoster bieten häufig auch Guide/FAQ-Einträge an, in denen der Vorgang beschrieben wird.

Haben Sie die Zugangsdaten hinterlegt und sich erfolgreich verbunden, sehen Sie auf der linken Seite die Dateistruktur ihres eigenen Rechners. Navigieren Sie hier zu dem Downloadverzeichnis des Patches:
Auf der rechten Seite sehen Sie die Dateistruktur auf Ihrem Webspace. In unserem Fall sind wir im Wurzelverzeichnis des Hostings, nicht im Hauptverzeichnis des JTL-Shop. In dieses müssen wir via Doppelklick auf, in diesem Fall, "httpdocs" wechseln.

Welches Verzeichnis Sie nach dem Verbinden sehen und wo sich das Hauptverzeichnis Ihres JTL-Shops befindet, kann sich bei jedem Hoster unterscheiden. Sollten Sie Ihr JTL-Shop Hauptverzeichnis nicht finden, bitten Sie Ihren Hoster um Unterstützung.
Ihr Shop-Hauptverzeichnis sollte so aussehen:
Machen Sie nun auf der linken Seite auf den Ordner "classes" einen Rechsklick und wählen Sie "Upload":
Sie erhalten dann eine Bestätigungsabfrage zum Überschreiben der vorhandenen Datei. Bestätigen Sie diese mit OK:
Die Datei wird nun hochgeladen. Achten Sie darauf, dass die Übertragung auch bei den erfolgreichen Übertragungen steht. Sollte dies nicht der Fall sein, versuchen Sie es erneut. Sollte es nicht klappen, bitten Sie Ihren Hoster um Unterstützung.
Wurde erfolgreich übertragen ("Successful transfers"), haben Sie den SecurityFix erfolgreich eingespielt.
Sie möchten keine Newsletter mehr von JTL-Software erhalten?
Verwalten Sie hier Ihre Newsletter-Einstellungen: Newsletter-Abmeldung.
 
Diese E-Mail wurde an <<Ihre Firmen-Email>> gesendet.

Copyright © 2021, All rights reserved.
JTL-Software-GmbH · Rheinstr. 7 · Hückelhoven 41836 · Deutschland
USt-IdNr.: DE257864472 · Registergericht: Amtsgericht Mönchengladbach, HRB 12450
CEOs: Janusch Lisson, Thomas Lisson · COO: Ralph Schweiker