Sicherheitspatch SUPEE-10570 - Mögliche Probleme?


45

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

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.


1
Für Open Source / Community Edition 1.x scheinen keine Änderungen an den Frontend- Vorlagen enthalten zu sein, sodass dies zumindest nicht zu viele Probleme verursachen sollte. Es wird jedoch dringend empfohlen, eine Datenbanksicherung durchzuführen, da in diesem Patch zwei Installationsskripts (Upgrades) enthalten sind. Weitere Details können folgen, nachdem ich die ersten Umgebungen gepatcht habe.
Christoph Farnleitner

1
Wenn Sie Geschäfte haben, die ein benutzerdefiniertes adminhtml-Raster verwenden, das den Geschäftsnamen enthält, wird der Patch jetzt möglicherweise ausgeblendet, um einige potenzielle Exploits zu beheben, die auf der Änderung des Geschäftsnamens und des Renderings beruhen.
Andrew Quackenbos

Ich habe bisher 2 Sites auf 1.9.0.1 ohne Problem gepatcht.
asdfasdfasf

1
Ich habe den Patch auf 1.9.3.0, 1.9.0.1 und 1.9.1.0 angewendet, bisher keine Probleme
David

2
Dies stammt aus dem Sicherheitsblog: magento.com/security/patches/supee-10570 HINWEIS : Bei einigen Kunden treten beim Versuch, beim Auschecken ein Konto zu erstellen, Probleme beim Auschecken auf. Ein Update-Patch oder eine Problemumgehung zur Behebung dieses Problems wird in Kürze verfügbar sein. Wenn dieses Problem derzeit auftritt, können Sie den Teil des Codes, der dieses Problem verursacht, zurücksetzen, indem Sie den folgenden Patch anwenden: invalid_sesssion_fix.patch aus dem Release-Archiv, Abschnitt SUPEE-10570
The Tankgirl,

Antworten:


29

Hier ist die Liste der vom SUPEE-10570-Patch geänderten Dateien:

app/Mage.php 
app/code/core/Mage/Admin/Helper/Data.php
app/code/core/Mage/Admin/Model/Block.php 
app/code/core/Mage/Admin/Model/Resource/Block.php 
app/code/core/Mage/Admin/Model/User.php 
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Edit/Form.php 
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php 
app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Grid/Renderer/Sender.php 
app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php 
app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php 
app/code/core/Mage/Adminhtml/Block/System/Store/Edit/Form.php 
app/code/core/Mage/Adminhtml/Block/Tag/Assigned/Grid.php 
app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Store.php 
app/code/core/Mage/Adminhtml/Block/Widget/Tabs.php 
app/code/core/Mage/Adminhtml/Model/Config/Data.php 
app/code/core/Mage/Adminhtml/Model/System/Store.php 
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php 
app/code/core/Mage/Adminhtml/controllers/CustomerController.php 
app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Core/Model/Variable.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/etc/config.xml
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.1.1.1-1.6.2.0.1.1.2.php
app/code/core/Mage/Downloadable/etc/config.xml
app/code/core/Mage/Downloadable/etc/system.xml
app/code/core/Mage/Downloadable/sql/downloadable_setup/upgrade-1.6.0.0.2.1.1-1.6.0.0.2.1.2.php
app/code/core/Mage/ImportExport/Model/Import.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php
app/code/core/Mage/Shipping/Model/Info.php
app/code/core/Mage/Widget/controllers/Adminhtml/Widget/InstanceController.php
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml
app/design/adminhtml/default/default/template/customer/tab/view.phtml
app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml
app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml
app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.phtml
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml
app/design/adminhtml/default/default/template/newsletter/preview/store.phtml
app/design/adminhtml/default/default/template/report/store/switcher.phtml
app/design/adminhtml/default/default/template/sales/order/view/info.phtml
app/design/adminhtml/default/default/template/store/switcher.phtml
app/design/adminhtml/default/default/template/store/switcher/enhanced.phtml
app/design/adminhtml/default/default/template/system/convert/profile/wizard.phtml
app/design/adminhtml/default/default/template/tax/rate/title.phtml
app/design/adminhtml/default/default/template/widget/form/renderer/fieldset.phtml
app/locale/en_US/Mage_Catalog.csv
app/locale/en_US/Mage_ImportExport.csv
lib/Zend/Mail/Transport/Sendmail.php

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).

//         if ($this->useValidateSessionPasswordTimestamp()
//             && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
//             && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
//             && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
//             > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
//         ) {
//             return false;
//         }

//         if ($this->useValidateSessionExpire()
//             && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
//             && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
//             return false;
//         } else {
//             $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
//                 = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
//         }

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).

if ($this->useValidateSessionPasswordTimestamp()
            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
        ) {
        return false;

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):

app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php

PS: Natürlich werden auch einige andere Dateien modifiziert, bitte überprüfen Sie dies entsprechend.


1
@Icon: Ich habe diesen Fehler gerade an Magento gemeldet. Ich werde die Antwort veröffentlichen, sobald ich ein offizielles Feedback erhalte.
DarkCowboy

4
@Icon / Soleil: Leider noch keine offizielle Antwort oder Korrektur bezüglich meiner Bugfix-Anfrage.
DarkCowboy

1
@DarkCowboy Mir ist gerade aufgefallen, dass das Magento-Team im Patch 1.7.0.0 und 1.7.0.2 einen Hinweis hinzugefügt hat, sobald Sie die Patch-Download-Seite aufgerufen haben. Es sieht so aus, als ob ein neuer Patch kommt.
Icon

3
Hallo allerseits. Ich habe gesehen, dass ein neuer Patch hinzugefügt wurde ("PATCH_SUPEE-10570_CE_v1.7.0.2_v1-2018-02-28-04-54-53.sh"). Sie können den Unterschied hier sehen (linker Bereich ist der 1. Patch "PATCH_SUPEE-10570_CE_v1.7.0.2_v1-2018-02-23-06-28-18.sh"): diffchecker.com/uGON91aR . Also keine Lösung für den neuen Patch ?! Außerdem wurde die Meldung "... AKTUALISIERTER PATCH ERWARTET, NICHT VERWENDEN" entfernt. Ich bin etwas verwirrt, was das Kernteam von Magento mit diesem Problem macht.
DarkCowboy

1
Zu Ihrer Information, V2 des Patches listet immer noch "SUPEE-10570_CE_v1.9.2.4 | CE_1.9.2.4 | v1" inapp/etc/applied.patches.list
Moose

9

(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:

  • Wenn Sie auf Importprodukte versuchen , die enthalten HTML - Tags in dem SKU - Attribute, zeigt Magento diesen Fehler bei der Datenvalidierungsphase (das heißt, wenn Sie auf Daten überprüfen ):
 Invalid value in SKU column. HTML tags are not allowed.
  • Wenn Sie versuchen, ein Produkt im Admin-Bereich zu erstellen oder zu bearbeiten und der SKU-Attributwert des Produkts HTML-Tags enthält, gibt Magento diesen Fehler aus, wenn Sie versuchen, das Produkt zu speichern: HTML tags are not allowed in SKU attribute.

Aus Patchnotizen :

Wenn der Patch während lib/Zend/Mail/Transport/Sendmail.phpdes 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.


7

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:

    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }
    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

Magento CE 1.7.0.2 - Zeilen 414-430:

    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }

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:


    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }
    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

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.


Hallo Dave. Sie sind anscheinend auf dasselbe Problem gestoßen wie ich. In Bezug auf Ihren Fix wird mit Ihrer Inversion die zweite Bedingung überhaupt nicht getestet ... Ich werde diese Sitzungsdaten untersuchen.
DarkCowboy

4
Update für 1.7.0.2 voraussichtlich Mitte März. (v2 des Patches), das Problem wurde bestätigt.
Piotr Kaminski

Hat jemand getestet, ob mit dieser Lösung die Zeitstempelprüfung für Kennwortänderungen weiterhin funktioniert oder ob die Sicherheitslücke, die sie zu patchen versuchten, erneut geöffnet wird? Hinweis: Wenn Sie sich nicht für den Sicherheitsvorteil interessieren, können Sie die Überprüfung des Zeitstempels für die Kennwortänderung einfach deaktivieren, indem Sie die useValidateSessionPasswordTimestamp()Rücksendung veranlassen false. (ein Zeilenwechsel in der gleichen Datei)
Eric Seastrand

Hallo. Wir haben festgestellt, dass das Problem "Weiterleiten mit leerem Warenkorb" mit der geänderten Validierungsreihenfolge weiterhin besteht. Wir haben die Prüfung "useValidateSessionPasswordTimestamp" deaktiviert, bis Magento ein Update erstellt.
Steven Fritzsche

6

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 ändern app/code/core/Mage/Customer/Helper/Data.php(bedeutet natürlich app/code/local/Mage/Customer/Helper/Data.php:!) Und Mage::getSingleton('core/resource')anstelle von Mage::getModel('customer/customer')oder zu verwenden Mage::getSingleton('customer/session'). Ersetzen Sie also die gesamte Funktion zB durch folgende Codezeilen:

    $resource = Mage::getSingleton('core/resource');
    $readConnection = $resource->getConnection('core_read');
    $query = 'SELECT * FROM ' . $resource->getTableName('customer_entity').' WHERE `entity_id` = '.$customerId;
    $results = $readConnection->fetchAll($query);
    $result=$results[0];
    $date_created = Varien_Date::toTimestamp($result['created_at']);
    return $date_created;

Nach dem Neukompilieren war das Problem weg. Jemand anderes mit diesem Problem?

Erklärung hier .


Dies ist in vielerlei Hinsicht einer der schlechtesten Ratschläge und Codes, die je hier gesehen wurden. Bitte machen Sie nichts davon zu Hause.
Pong

Genau so bei mir. Dieser Patch funktioniert nicht mit aktiviertem Compiler.
Rafael Patro

In 1.9.3.9 funktioniert es gut für mich.
TonkBerlin

4

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

patching file lib/Zend/Mail/Transport/Sendmail.php
Hunk #1 FAILED at 119.
Hunk #2 FAILED at 130.

Wenden Sie diese Patches an, um das Problem zu beheben.


2
Stellen Sie sicher, dass 9652 und 9767 installiert sind
Icon

In der Tat haben wir SUPEE-10570 auf allen Vanilla Magento-Versionen seit 1.6.0.0 getestet und es funktioniert alles. Aber nur, wenn Sie alle vorherigen Patches angewendet haben. Hier können Sie nachsehen, welche Patches erforderlich sind: docs.google.com/spreadsheets/d/…
Jeroen Vermeulen - MageHost

4

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:

+    const VALIDATOR_PASSWORD_CREATE_TIMESTAMP   = 'password_create_timestamp';

Es werden jedoch zwei neue Konstanten hinzugefügt, insbesondere diese:

+        if ($this->useValidateSessionPasswordTimestamp()
+            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
+            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
+            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
+            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
+        ) {
+            return false;
+        }

Dies führt zu dem Fehler:

PHP Fatal error:  Uncaught Error: Undefined class constant 'VALIDATOR_SESSION_EXPIRE_TIMESTAMP' in 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:406
Stack trace:
#0 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php(358): Mage_Core_Model_Session_Abstract_Varien->_validate()
#1 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php(176): Mage_Core_Model_Session_Abstract_Varien->validate()
#2 
app/code/core/Mage/Core/Model/Session/Abstract.php(84): Mage_Core_Model_Session_Abstract_Varien->init('core', 'frontend')
#3 
app/code/core/Mage/Core/Model/Session.php(42): Mage_Core_Model_Session_Abstract->init('core', 'frontend')
#4 
app/code/core/Mage/Core/Model/Config.php(1354): Mage_Core_Model_Session->__construct(Array)

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.

const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';

Bisher habe ich dieses Problem in keinem der 1.9 gesehen. oder 1.14.x Patches, weil sie die Konstante korrekt definieren.


Dies wurde korrigiert, indem 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.
Tyler V.

Yep scheint spezifisch für 1.7.0.0 Patch zu sein
danmentzer

Tyler, können Sie den Fix eher zu Ihrer eigentlichen Antwort als zum Kommentarbereich hinzufügen.
Danmentzer

1
Außerdem würde ich nur bemerken, dass dies auch Patches für die EE-Version des Patches sowie EE 1.12.0.0
danmentzer

3

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.


2

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 :

    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Hierarchy/Edit/Form.php
    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Hierarchy/Widget/Chooser.php
    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Page/Edit/Tab/Hierarchy.php
    app/code/core/Enterprise/Cms/Block/Hierarchy/Menu.php
    app/code/core/Enterprise/Customer/Block/Adminhtml/Customer/Attribute/Edit/Tab/Main.php
    app/code/core/Enterprise/GiftRegistry/Model/Observer.php
    app/code/core/Enterprise/Reward/Block/Adminhtml/Customer/Edit/Tab/Reward/Management/Update.php
    app/code/core/Enterprise/Rma/Model/Shipping/Info.php
    app/code/core/Enterprise/Staging/Block/Adminhtml/Backup/Grid.php
    app/code/core/Enterprise/Staging/Block/Adminhtml/Staging/Grid.php
 app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/edit.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/scope/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/widget/radio.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/page/preview/store.phtml
    app/design/adminhtml/default/default/template/enterprise/customer/website/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/invitation/view/tab/general.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/log/information/create.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/edit/tabs/website.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/edit/tabs/website/store.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/merge/settings/website.phtml
    app/design/adminhtml/default/default/template/enterprise/store/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/store/switcher/enhanced.phtml
    app/design/adminhtml/default/default/template/merchandiser/new/page/html/top-buttons.phtml
    app/design/frontend/enterprise/default/template/cms/hierarchy/pagination.phtml

Einige wichtige Hinweise

password_created_at erstellt in Kundenattributtabelle.

app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.5.1.1-1.6.2.0.5.1.2.php

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_atAttribut wird in Ihrer Kundenattributtabelle und der richtigen Wert in dieser Tabelle gespeichert erstellt.


Ich konnte password_created_at nicht in der CE-Datenbank finden, in der das Problem ebenfalls angegeben ist.
TonkBerlin

Überprüfen Sie diese Datei app / code / core / Mage / Customer / sql / customer_setup / upgrade-1.6.2.0.5.1.1-1.6.2.0.5.1.2.php
Rama Chandran M

2

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:

  1. Die Funktion getPasswordTimestamp wird zweimal aufgerufen, wenn Sie angemeldet sind und / checkout / cart besuchen.

  2. Compiler deaktiviert beide Aufrufarbeiten.

  3. 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?


2

Ich habe folgende Probleme mit 1.7.0.2 festgestellt:

  1. Produkt in den Warenkorb legen und zur Kasse gehen

  2. Klicken Sie auf "Registrieren"

  3. Füllen Sie alle erforderlichen Bestellinformationen einschließlich Zahlungsdetails usw. aus.
  4. Klicken Sie auf Bestellung abschließen.

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.


Haben Sie eine Lösung dafür gefunden? Ich stehe vor dem gleichen Problem.
Parth Thummar

1
V2 des Patches ist raus, Problem behoben
Icon

2

Ich bin auf dasselbe Problem gestoßen. In Magento 1.9.3.8 wurde diese Methode der Klasse Mage_Customer_Helper_Data hinzugefügt

/**
 * Get customer password creation timestamp or customer account creation timestamp
 *
 * @param $customerId
 * @return int
 */
public function getPasswordTimestamp($customerId)
{
    /** @var $customer Mage_Customer_Model_Customer */
    $customer = Mage::getModel('customer/customer')
        ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
        ->load((int)$customerId);
    $passwordCreatedAt = $customer->getPasswordCreatedAt();

    return is_null($passwordCreatedAt) ? $customer->getCreatedAtTimestamp() : $passwordCreatedAt;
}

Wenn Sie diese Klasse im lokalen Ordner überschrieben (nicht die beste Vorgehensweise), werden möglicherweise Fehler von dieser Klasse generiert.


2

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.

diff --git app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
index e45298c..8bee617 100644
--- app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
+++ app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
@@ -36,7 +36,7 @@
             <div class="cms-popup-description"></div>
             <div class="fieldset">
                 <div class="cms-hierarchy manage-form">
-                    <?php echo $this->getFormHtml() ?>
+                    <?php echo $this->escapeHtml($this->getFormHtml()); ?>
                 </div>
             </div>
         </div>

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.

Zeige gebrochene Hierarchie


0

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

checking file lib/Zend/Mail/Transport/Sendmail.php
Hunk #1 FAILED at 119.
Hunk #2 FAILED at 129.
2 out of 2 hunks FAILED

Überprüfen Sie, ob Sie den vorherigen Patch installiert haben. bestimmten 9767 Patch
Rama Chandran M

Auf www.magereport.com wurde überprüft, ob alle Patches installiert waren.9767.
Roy Toledo

Ich werde es überprüfen und ans
Rama Chandran M

1
@royToledo Stellen Sie sicher, dass Sie auch den Patch SUPEE-9652 angewendet haben
Tyler V.

0

Wenn Sie über ein Tool zur Patch-Erkennung verfügen, müssen Sie wahrscheinlich die Erkennung von ändern, SUPEE-9562 da SUPEE-10570dieselbe Datei geändert wird:

lib/Zend/Mail/Transport/Sendmail.php

0

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

PATCH_SUPEE-10570_CE_v1.9.0.1_v1-2018-02-23-06-18-06.sh

Ein paar Tage später bekam ich folgende Datei

PATCH_SUPEE-10570_CE_v1.9.0.1_v1-2018-02-28-04-54-29.sh

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.


0

Möglicherweise wird folgende Fehlermeldung angezeigt

Hunk #3 FAILED at 17 nach der Linie

checking file app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Page/Edit/Tab/Hierarchy.php

Es passierte für mich in der Magento 1.10.0.2EE Version. Dies geschah, weil der SUPEE-6285-Patch nicht angewendet wurde.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.