Magento hat einen neuen Sicherheitspatch für M1 und Updates für M1 und M2 veröffentlicht.
Auf welche Probleme sollte ich achten, wenn ich diesen Patch aktualisiere oder anwende?
SUPEE-10570, Magento Commerce 1.14.3.8 und Open Source 1.9.3.8 enthalten mehrere Sicherheitsverbesserungen, die das Beenden der Remotecodeausführung (RCE), der standortübergreifenden Skripterstellung (XSS) und anderer Probleme unterstützen Versionshinweise.
MAGENTO 2.2.3, 2.1.12 UND 2.0.18 SICHERHEITS-UPDATE
Magento Commerce und Open Source 2.2.3, 2.1.12 und 2.0.18 enthalten mehrere Sicherheitsverbesserungen, mit denen Cross-Site Scripting (XSS), die authentifizierte Remote-Codeausführung von Administratoren (RCE) und andere Sicherheitsanfälligkeiten geschlossen werden können. Die Releases enthalten zusätzliche Funktionskorrekturen. Weitere Informationen zu den Funktionskorrekturen finden Sie in den Versionshinweisen für Magento Commerce 2.0.18, 2.1.12, 2.2.3 und Magento Open Source 2.0.18, 2.1.12, 2.2.3.
Antworten:
Hier ist die Liste der vom SUPEE-10570-Patch geänderten Dateien:
BEARBEITEN
Nach der Bereitstellung auf meiner Produktwebsite (CE 1.7.0.2) ist mir ein kritisches Blockierungsproblem aufgefallen (Checkout-Prozess blockiert).
Der Kontext: Nach Schritt 1 Adresse erstelle und protokolliere ich den Kunden direkt, er soll erst den nächsten Checkout-Schritt sehen.
Das Problem: Nach supee-10570 wird der Checkout-Prozess nach Schritt 1 abgebrochen (falls ein Account erstellt wurde) und der Kunde wird zur Homepage weitergeleitet (wenn der Warenkorb leer + abgemeldet ist) = es ist unmöglich, seinen Checkout zu erreichen.
Die Notlösung: Falls Sie ein ähnliches Problem mit Ihrer Kaufabwicklung / Kundensitzung haben, kommentieren Sie die Zeilen 414-430 aus app / code / core / Mage / Core / Model / Session / Abstract / Varien.php (die vom Patch hinzugefügten) , siehe unten).
BEARBEITEN (2)
Ich denke, die folgende Bedingung wird immer false zurückgeben (Mage_Core_Model_Session_Abstract_Varien in den Zeilen 414-419, insbesondere in den Zeilen 417 + 418).
VALIDATOR_PASSWORD_CREATE_TIMESTAMP ist immer größer als VALIDATOR_SESSION_EXPIRE_TIMESTAMP. Der Zeitstempel für das Ablaufen der Sitzung wird bei der Kontoerstellung neu definiert und ist daher zwangsläufig älter als der Initialisierungszeitpunkt der Sitzung.
Wenn Sie den Kunden zum Beispiel während des Bezahlvorgangs erstellen, wird dies falsch zurückgegeben und der Kunde wird nur gekickt (= Kasse beenden, Weiterleitung zur Startseite und Warenkorb leer). Ziemlich schlimm.
Ich habe dieses Problem dem Magento-Team gemeldet. Ich werde hier so schnell wie möglich Feedback geben.
BEARBEITEN (3)
Ein neuer Patch ist wip (auf der Magento-Patch-Download-Seite steht "SUPEE-10570 für CE 1.7.0.0 - AKTUALISIERTER PATCH ERWARTET, NICHT VERWENDEN (0,06 MB)").
EDIT (4) ~ 1 Monat nach dem ersten gemeldeten Blockierungsproblem
Hallo! Ich hoffe, Sie sind alle Waren (und ich hoffe, Sie haben den anfänglichen Patch-Status bis jetzt nicht beibehalten, es sei denn, Ihr Geschäftseinkommen war wahrscheinlich ernsthaft gesunken ^^).
Ich habe den folgenden Satz von der offiziellen Seite bemerkt: "Magento stellt jetzt einen aktualisierten Patch (SUPEE-10570v2) zur Verfügung, der dieses Problem nicht mehr verursacht. Beachten Sie jedoch, dass dieser neue Patch nicht mehr vor zwei Sitzungen mit geringem Risiko schützt, die mit der Behandlung zusammenhängen Sicherheitsprobleme, gegen die der Patch SUPEE-10570 geschützt ist. " von der offiziellen supee-10570 Seite.
Auf der Release-Seite finden wir endlich die v2-Datei (PATCH_SUPEE-10570_CE_v1.7.0.2_v2-2018-03-29-08-52-37.sh).
Ich habe die Änderungen im Detail untersucht. Schließlich scheint es so, als ob das magento-Team gerade beschlossen hat, einen Sicherheitsteil des Patches zu löschen. Hoffe, dass dieses Sicherheitsloch keine ernsthaften Schäden verursacht (es ist laut offizieller Anmerkung niedrig kritisch).
Achten Sie darauf, dass nach dem Zurücksetzen von v1 + Anwenden von v2 die folgenden Dateien in ihrem ursprünglichen Zustand zurückgesetzt werden (bevor v1 angewendet wurde):
PS: Natürlich werden auch einige andere Dateien modifiziert, bitte überprüfen Sie dies entsprechend.
quelle
app/etc/applied.patches.list
(nicht sicher, ob dies in den Versionshinweisen von Anfang an enthalten war)
Bekannte Probleme
Diese beiden bekannten Probleme hängen mit der Verwendung von HTML-Tags innerhalb des SKU-Attributs eines Produkts zusammen:
Invalid value in SKU column. HTML tags are not allowed.
HTML tags are not allowed in SKU attribute.
Aus Patchnotizen :
Wenn der Patch während
lib/Zend/Mail/Transport/Sendmail.php
des Patchens nicht angewendet werden kann, wurde Ihre Magento-Installation möglicherweise zuvor mit SUPEE-9652v1 anstelle von SUPEE-9652v2 gepatcht. Die empfohlene Lösung besteht darin, das Patch SUPEE-9652v1 zurückzusetzen und SUPEE-9652v2 anzuwenden, bevor Sie SUPEE-10570 anwenden.quelle
Ich hatte das gleiche Problem wie @DarkCowboy, nachdem ich den Patch auf Magento CE 1.7.0.2 angewendet hatte.
Nachdem ich mich während der Kaufabwicklung als neuer Kunde registriert habe, werden durch die Bestellung sowohl die Bestellung als auch der Kunde erstellt. Anstatt die Seite mit dem Bestellungserfolg anzuzeigen, werde ich auf die Startseite umgeleitet und abgemeldet.
Die Lösung, die ich gefunden habe, besteht darin, die Reihenfolge der Codeblöcke in den Änderungen von umzukehren
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
.Beim Vergleich der gepatchten Version mit derselben Datei in Magento CE 1.9.3.8 stellte ich fest, dass die neuen Blöcke zur Überprüfung des Sitzungsablaufs und des Kennwort-Zeitstempels in einer anderen Reihenfolge vorliegen.
Magento CE 1.9.3.8 - Zeilen 476-491:
Magento CE 1.7.0.2 - Zeilen 414-430:
Dies führt dazu, dass der Wert
$validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
größer als$sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
ist. Dies bedeutet, dass die Methode immer false zurückgibt und die Validierung fehlschlägt.Das Ändern des Codes in Magento CE 1.7.0.2 entsprechend der Version in Magento CE 1.9.3.8 behebt das Problem.
Der resultierende Code für Magento CE 1.7.0.2 - Zeilen 414-430:
Ich würde vorschlagen, eine eigene Patch-Datei zu erstellen und diese direkt auf die Core-Datei anzuwenden (so gehe ich normalerweise vor, um Fehler im Core zu beheben). Dies würde das Zurücksetzen erleichtern, wenn Magento Version 2 des Patches veröffentlicht.
quelle
useValidateSessionPasswordTimestamp()
Rücksendung veranlassenfalse
. (ein Zeilenwechsel in der gleichen Datei)Nach dem Anwenden von SUPEE-10570 und dem Kompilieren wurde eine leere Seite unter / checkout / cart angezeigt. Nur zur Verdeutlichung: Bei deaktiviertem Compiler lief alles gut, bei aktiviertem Compiler konnten wir nur dann eine leere Warenkorbseite sehen, wenn wir ohne Protokolleinträge angemeldet waren (auch wenn alle möglichen Protokolle und der Entwicklermodus aktiviert waren).
Die Lösung bestand darin, die Funktion
getPasswordTimestamp()
in zu ändernapp/code/core/Mage/Customer/Helper/Data.php
(bedeutet natürlichapp/code/local/Mage/Customer/Helper/Data.php
:!) UndMage::getSingleton('core/resource')
anstelle vonMage::getModel('customer/customer')
oder zu verwendenMage::getSingleton('customer/session')
. Ersetzen Sie also die gesamte Funktion zB durch folgende Codezeilen:Nach dem Neukompilieren war das Problem weg. Jemand anderes mit diesem Problem?
Erklärung hier .
quelle
1.7.0.0
Aufnäher:
PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh
Dieser Fehler tritt auf, wenn Sie SUPEE-9652 oder SUPEE-9767 noch nicht angewendet haben
Wenden Sie diese Patches an, um das Problem zu beheben.
quelle
1.7.0.0
Patch-
PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh
Dateiapp/code/core/Mage/Core/Model/Session/Abstract/Varien.php
Der Patch für 1.7.0.0 fügt nur eine Konstante hinzu:
Es werden jedoch zwei neue Konstanten hinzugefügt, insbesondere diese:
Dies führt zu dem Fehler:
Die Reparatur:
Fügen Sie eine Definition für diese zweite Konstante über oder unter der ersten Konstante hinzu, die von diesem Patch hinzugefügt wurde.
Bisher habe ich dieses Problem in keinem der 1.9 gesehen. oder 1.14.x Patches, weil sie die Konstante korrekt definieren.
quelle
const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';
am Anfang der Datei ein Patch hinzugefügt wurde , wie dies in den meisten anderen Versionen dieses Patches der Fall ist.Als erstes sollten Sie überprüfen, ob Sie zuvor die richtige Version von SUPEE-6788 oder SUPEE-7405 angewendet haben, falls nicht, die falsche Version wiederherstellen und dann die richtige Version von SUPEE-6788 / SUPEE-7405 anwenden.
Versuchen Sie dann erneut, SUPEE-10570 anzuwenden.
quelle
Die folgenden Dateien werden nach dem Patch SUPEE-10570 in EE aktualisiert / hinzugefügt
@DarkCowboy hat eine Liste anderer Dateien als die folgenden EE- Dateien bereitgestellt :
Einige wichtige Hinweise
password_created_at
erstellt in Kundenattributtabelle.Diese oben genannten Dateien werden zur Erstellung und Validierung verwendet. Sitzung Problem tritt an der Kasse oder Scheck Benutzeranmeldung wird die oben beliebigen der Dateien in Ihrem lokalen Pool überschreibt oder irgendein
password_created_at
Attribut wird in Ihrer Kundenattributtabelle und der richtigen Wert in dieser Tabelle gespeichert erstellt.quelle
Meine Magento-Version ist ver. 1.9.1.0.
Nach dem Anwenden von SUPEE-10570 und dem Kompilieren wurde eine leere Seite unter / checkout / cart angezeigt. Nur zur Verdeutlichung: Bei deaktiviertem Compiler lief alles gut, bei aktiviertem Compiler konnten wir nur dann eine leere Warenkorbseite sehen, wenn wir ohne Protokolleinträge angemeldet waren (auch wenn alle möglichen Protokolle und der Entwicklermodus aktiviert waren).
Ursache:
Die Funktion getPasswordTimestamp wird zweimal aufgerufen, wenn Sie angemeldet sind und / checkout / cart besuchen.
Compiler deaktiviert beide Aufrufarbeiten.
Aktivieren Sie den Compiler nur für den ersten Aufruf. Der zweite Aufruf ist fehlgeschlagen.
kann mir jemand die gute lösung erklären und geben?
quelle
Ich habe folgende Probleme mit 1.7.0.2 festgestellt:
Produkt in den Warenkorb legen und zur Kasse gehen
Klicken Sie auf "Registrieren"
PROBLEM BEGINNT HIER
5. Sie werden automatisch zur STARTSEITE weitergeleitet. Die Bestätigung der Bestellnummer wird nicht angezeigt. In Wirklichkeit wird jedoch eine Bestellung aufgegeben und ein Kundenkonto erstellt.
quelle
Ich bin auf dasselbe Problem gestoßen. In Magento 1.9.3.8 wurde diese Methode der Klasse Mage_Customer_Helper_Data hinzugefügt
Wenn Sie diese Klasse im lokalen Ordner überschrieben (nicht die beste Vorgehensweise), werden möglicherweise Fehler von dieser Klasse generiert.
quelle
Dieser Patch hat einen Teil des CMS-Hierarchie-Managers für EE-Benutzer beschädigt.
Dies liegt an der folgenden Patch-Zeile, die für das Entweichen von Namen von Geschäften / Websites und das Beheben von APPSEC-1873/1979/1980 verantwortlich ist.
Es sollte den Store Selector auf der linken Seite anzeigen, stattdessen wird der HTML-Code auf der rechten Seite angezeigt. Wenn Sie diese Funktionalität wirklich benötigen, müssen Sie einen Aufruf von Sicherheit im Vergleich zu Funktionalität durchführen, der nicht besonders gut ist.
quelle
Genau derselbe Fehler wie bei Tyler unter Magento 1.9.2.4 Patch PATCH_SUPEE-10570_CE_v1.9.2.4_v1-2018-02-28-04-53-53.sh
quelle
Wenn Sie über ein Tool zur Patch-Erkennung verfügen, müssen Sie wahrscheinlich die Erkennung von ändern,
SUPEE-9562
daSUPEE-10570
dieselbe Datei geändert wird:quelle
Der Patch wurde von Magento stillschweigend geändert. Hier gezeigt mit Patch für Magento 1.8.1.0-1.9.0.1. Beim ersten Download habe ich Datei
Ein paar Tage später bekam ich folgende Datei
Diff zeigt an, dass die vorherige Datei Dateien aus Magento Enterprise Edition enthält, die die falsche Lizenz "Magento Enterprise Edition-Endbenutzer-Lizenzvereinbarung" enthalten. Dies wurde zu "Open Software License (OSL 3.0)" korrigiert.
quelle
Möglicherweise wird folgende Fehlermeldung angezeigt
Hunk #3 FAILED at 17
nach der LinieEs passierte für mich in der Magento 1.10.0.2EE Version. Dies geschah, weil der SUPEE-6285-Patch nicht angewendet wurde.
quelle