
Verifizierter Proof of Concept für CVE-2022-24086
CVE-2022-24086, von dem Adobe sah, dass er „in freier Wildbahn in sehr begrenzten Angriffen ausgenutzt“ wurde, erhielt einen Schweregrad von 9,8 von 10 Punkten. Angreifer, die ihn ausnutzen, können ohne Authentifizierung eine Remotecodeausführung auf betroffenen Systemen erreichen. Das Problem, das jetzt als CVE-2022-24087 verfolgt wird, hat denselben Schweregrad und kann bei Angriffen zum gleichen Ergebnis führen. Beides sind Schwachstellen aufgrund unsachgemäßer Eingabevalidierung, und das Unternehmen veröffentlichte Patches für Adobe Commerce und Magento Open Source, um die beiden Sicherheitsprobleme zu beheben.
Wir konzentrieren uns nur auf 2022-24086, denn wenn das CMS gepatcht ist, hat es normalerweise bereits beide Patches, daher hat es keinen Sinn, sich mit 2022-24087 zu befassen.
Magento Open Source / Adobe Commerce - 2.3.3-p1 - 2.3.7-p2
Magento Open Source / Adobe Commerce - 2.4.0 - 2.4.3-p1
Dieser PoC wurde auf den Versionen 2.3.4, 2.4.0, 2.4.2-p2, 2.4.3 und 2.4.3-p1 mit dem Standardmodul für E-Mail-Vorlagen und Standard-Beispieldaten getestet.
Lassen Sie uns in die offiziellen Patches eintauchen: MDVA-43443, MDVA-43395. Alle Composer-Patches für alle Versionen haben gemeinsame Teile, die wichtigsten sind:
+ private function sanitizeValue($value)
+ {
+ return is_bool($value) ? $value : str_replace(['{', '}'], '', (string) $value);
+ }
+ $pattern = '/{{.*?}}/';
+ do {
+ $result = preg_replace($pattern, '', (string)$result);
+ } while (preg_match($pattern, $result));
Wie wir sehen, versuchen sie, {{ und }} loszuwerden. Diese doppelten geschweiften Klammern werden in den integrierten E-Mail-Vorlagen verwendet.
Jetzt ist es an der Zeit, in die E-Mail-Vorlagen einzutauchen!
Das offizielle Handbuch zu E-Mail-Vorlagen wurde am 15. März bearbeitet. Was hat sich geändert und warum? web.archive.org zeigt uns eine alte Version dieser Seite, und wir können sehen, dass die Erwähnungen von Systemvariablen entfernt wurden. Informationen zu den Methoden getTemplateFilter und addAfterFilterCallback wurden aus dem Handbuch gelöscht.
public function getTemplateFilter()
{
if (empty($this->templateFilter)) {
$this->templateFilter = $this->getFilterFactory()->create();
$this->templateFilter->setUseAbsoluteLinks($this->getUseAbsoluteLinks())
->setStoreId($this->getDesignConfig()->getStore())
->setUrlModel($this->urlModel);
}
return $this->templateFilter;
}
public function addAfterFilterCallback(callable $afterFilterCallback)
{
// Only add callback if it doesn't already exist
if (in_array($afterFilterCallback, $this->afterFilterCallbacks)) {
return $this;
}
$this->afterFilterCallbacks[] = $afterFilterCallback;
return $this;
}

Die meisten großen Magento-Benutzer haben bereits gepatcht, und dieses Tool ist nicht mehr so gefährlich wie vor ein paar Monaten. Aber aufgrund des potenziellen Schadens, den dieses Tool anrichten kann, sollte dieser PoC nicht in eingeschränktem Zugang sein.
Aktueller Preis - 0,5 BTC. Es enthält eine vollständige Anleitung zur Penetration, Beispiel-Payloads und Support.
Unser XMPP-Kontakt für Beratung und Bestellung ist [email protected].
Dieser PoC ist ausdrücklich nicht in einem Zustand, Schaden zu verursachen. Er ist ein solider Ausgangspunkt, um etwas Größeres aufzubauen.
Die Autoren dieses Projekts sind nicht verantwortlich für mögliche Schäden, die durch das Material verursacht werden.
CC0