
Proof-of-Concept-Exploit für CVE-2022-24086 und CVE-2022-24087, der Remote-Codeausführung vor der Authentifizierung in Magento/Adobe Commerce über manipulierte Payloads demonstriert, die die Eingabevalidierung umgehen.
CVE-2022-24086 und CVE-2022-24087 - eine Schwachstelle durch unzureichende Eingabevalidierung im Kontaktformular von Magento Open Source und Adobe Commerce - haben einen CVSS-Score von 9,8 von 10 erhalten und werden als Pre-Authentication-Problem eingestuft, was bedeutet, dass sie ohne Anmeldedaten ausgenutzt werden können.
Magento Open Source / Adobe Commerce - 2.3.3-p1 - 2.3.4
Magento Open Source / Adobe Commerce - 2.3.4-p2 - 2.4.2-p2
Magento Open Source / Adobe Commerce - 2.4.3 - 2.4.3-p1
CVE-2022-24086 war eine kritische Zero-Day-Sicherheitslücke, die Magento-Shops betraf. Die Schwachstelle wurde bei begrenzten Angriffen gemeldet. Eine weitere Schwachstelle, CVE-2022-24087, hat denselben Schweregrad und einen ähnlichen Angriffsvektor.
Nach einiger Recherche fand ich keinen legitimen und funktionierenden PoC, um die Schwere dieses Fehlers von Adobe zu demonstrieren, und beschloss, meinen eigenen zu erstellen. Beim Reverse Engineering offizieller und inoffizieller Patches fand ich heraus, dass in /app/code/Magento/Email/Model/Template/Filter.php Eingaben nicht ordnungsgemäß bereinigt wurden und die Plattform während der Formularvalidierung keine Kombination von Zeichentypen erkennen kann; schädliche Sequenzen können so ungehindert Schaden anrichten und Eingabevalidierungsmethoden umgehen, die normalerweise zur Bereinigung unerwünschter Eingabetypen verwendet werden. Dies eröffnet die Möglichkeit für SQL- und PHP-Objektinjektionsangriffe innerhalb von Magento, die unerwünschte Datenbankeinträge hinzufügen oder Remote-Code-Ausführung ermöglichen können.
Einige Teile des in offiziellen Patches (MDVA-43395) hinzugefügten Codes, die uns zum PoC führen:
Was wir tun müssen, ist, eine raffinierte Payload zu erstellen und per POST zu senden: