In den immer noch weit verbreitenen Versionen 1 und 2 des Zend Frameworks, welches auch dem beliebten Shopsystem Magento zugrundeliegt, wurde eine weitere kritische Sicherheitslücke gefunden. Nutzt ein Angreifer diese Schwachstelle aus, kann er eigenen Code auf Ihrem Server ausführen. Wir zeigen Ihnen, wie Sie herausfinden, ob Sie betroffen sind und wie Sie die Lücke schließen können.

[UPDATE VOM 08.02.2017]

Inzwischen wurde von Magento der offizielle Patch SUPEE-9652 bereitgestellt, der diese Sicherheitslücke schließt. Wenn Sie diesen Patch installieren, brauchen Sie die hier beschriebene Vorgehensweise nicht anwenden.

Das E-Mail Modul ist schuld

Wie kürzlich bekannt wurde, hat man einen Fehler im sogenannten „Sendmail Adapter“ des Zend Frameworks gefunden, der ausgenutzt werden kann, um eigenen Code auf fremden Servern auszuführen. Dies funktioniert aber nur, wenn auf dem entsprechenden Server der E-Mail Service Sendmail installiert ist. Ist dies der Fall, sollte man unverzüglich Maßnahmen ergreifen, um Schlimmeres zu verhindern. Betroffen sind demnach nicht nur Magento Installationen in Version 1 und 2, sondern auch alle anderen Websites und Softwarelösungen, die auf der Scriptsprache PHP basieren und das Zend Framework in Version 1 oder 2 nutzen.

So schließen Sie die Lücke

Ist das Sendmail Modul auf dem Server aktiv?

Prüfen Sie zunächst, ob der Server, auf dem Ihr Magento Shop installiert ist, den Mailservice „Sendmail“ nutzt. Verbinden Sie sich dazu per SSH Shell mit Ihrem Server und geben Sie folgenden Befehl in der Konsole ein:

which sendmail

Falls die Meldung „sendmail not found“ erscheint, wurde der Pfad zur Binärdatei des sendmail commands nicht gefunden. Sie können also davon ausgehen, dass der Service entweder nicht auf dem Server installiert ist oder nicht richtig konfiguriert wurde. In beiden Fällen kann das Zend Framework nicht darauf zugreifen und es besteht keine Gefahr.

Test des Sendmail Moduls

Erhalten Sie jedoch eine Ausgabe in der Art „/usr/sbin/sendmail“, dann ist das Modul auf Ihrem Server installiert und einsatzbereit. In diesem Fall können Sie mit einem weiteren Test prüfen, ob der Service wirklich funktioniert. Geben Sie dazu folgenden Befehl in der Konsole ein:

echo "Subject: sendmail test" | sendmail -v ihre@mail-adresse.de

Wenn alles funktioniert, sehen Sie eine entsprechende Verarbeitung in der Konsole und erhalten kurze Zeit später eine leere E-Mail mit dem Betreff „sendmail test“.

Änderung im Magento Backend

Ist das Sendmail Modul auf Ihrem Server aktiv, müssen Sie eine Einstellung in Ihrem Magento Backend vornehmen, damit die Sicherheitslücke ausgehebelt wird. Dazu gehen Sie wie folgt vor:

  1. Melden Sie sich mit Ihrem Benutzernamen und Ihrem Passwort bei der Administrationsoberfläche Ihrer Magento Installation an. Standardmäßig finden Sie diese unter der URL ihredomain.de/admin.
  2. Navigieren Sie zu folgendem Einstellungsmenü: System -> Konfiguration -> Erweitert -> System -> Mailversand Einstellungen
  3. Prüfen Sie dort den eingestellten Wert neben „Antwortadresse eintragen“. Ist dort „Nein“ bereits ausgewählt, besteht keine Gefahr. Ist „Ja“ ausgewählt, ändern Sie den Wert auf „Nein“ und speichern die Änderung danach ab. Angreifer haben nun keine Möglichkeit mehr über diese Sicherheitslücke Code auf Ihrem Server auszuführen.

Ein offizieller Patch folgt

Nachdem die Systeme der Enterpise Kunden, die Ihre Installation in der Cloud von Magento hosten lassen, bereits geprüft und abgesichert wurden, verspricht Magento für die kommenden Wochen einen offiziellen Patch, um die Lücke zu schließen. Auch wenn noch kein Angriff bekannt geworden ist, der diese Lücke ausnutzt, wird jedem Shopbetreiber empfohlen, den Shop über den o.g. Weg abzusichern. Da die Lücke nun der breiten Öffentlichkeit bekannt gemacht worden ist, dauert es sicherlich nicht lange, bis die ersten Exploit-Versuche stattfinden.