Correctif de sécurité SUPEE-10266 - Problèmes possibles?


36

Un nouveau correctif de sécurité est disponible pour Magento 1, qui résout 13 problèmes APPSEC.

https://magento.com/security/patches/supee-10266

Quels problèmes courants devez-vous surveiller lorsque vous appliquez ce correctif?

SUPEE-10266, Magento Commerce 1.14.3.6 et Open Source 1.9.3.6 contiennent de nombreuses améliorations de sécurité permettant de fermer les falsifications de requêtes intersites (CSRF), les fuites de données non autorisées et les vulnérabilités d'exécution de code à distance d'utilisateur utilisateur authentifié. Ces versions incluent également des correctifs pour les problèmes liés au rechargement d’images et aux paiements utilisant la validation en une étape.


Faire face à un problème lors de l'application à 1.9.3.2 - magento.stackexchange.com/questions/193451/…
Shrenik

Réponses:


13

Certaines des informations importantes partagent ici. La plupart des fichiers du backend de Magento. Les listes de fichiers:

app/code/core/Mage/Admin/Model/Session.php
app/code/core/Mage/Adminhtml/Block/Notification/Grid/Renderer/Notice.php
app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
app/code/core/Mage/Adminhtml/Controller/Action.php
app/code/core/Mage/Adminhtml/Model/LayoutUpdate/Validator.php
app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Adminhtml/controllers/Newsletter/TemplateController.php
app/code/core/Mage/Checkout/controllers/CartController.php
app/code/core/Mage/Core/Model/Email/Template/Abstract.php
app/code/core/Mage/Core/Model/File/Validator/Image.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Core/etc/config.xml
app/code/core/Mage/Rss/Helper/Data.php
app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
app/code/core/Zend/Serializer/Adapter/PhpCode.php
app/design/adminhtml/default/default/template/backup/dialogs.phtml
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/file.phtml
app/design/adminhtml/default/default/template/customer/tab/view.phtml
app/design/adminhtml/default/default/template/login.phtml
app/design/adminhtml/default/default/template/notification/toolbar.phtml
app/design/adminhtml/default/default/template/oauth/authorize/form/login.phtml
app/design/adminhtml/default/default/template/resetforgottenpassword.phtml
app/design/adminhtml/default/default/template/sales/order/view/history.phtml
app/design/adminhtml/default/default/template/sales/order/view/info.phtml
app/design/install/default/default/template/install/create_admin.phtml
app/locale/en_US/Mage_Adminhtml.csv
downloader/template/login.phtml

La chose importante doit vérifier ces trois fichiers.

app/code/core/Mage/Checkout/controllers/CartController.php
app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
app/code/core/Mage/Core/Model/File/Validator/Image.php

app / code / core / Mage / Checkout / controllers / CartController.php vérification de la condition supplémentaire identifiant client :

diff --git app/code/core/Mage/Checkout/controllers/CartController.php app/code/core/Mage/Checkout/controllers/CartController.php
index 7c9f28f..bee6034 100644
--- app/code/core/Mage/Checkout/controllers/CartController.php
+++ app/code/core/Mage/Checkout/controllers/CartController.php
@@ -284,14 +284,16 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
     public function addgroupAction()
     {
         $orderItemIds = $this->getRequest()->getParam('order_items', array());
+        $customerId   = $this->_getCustomerSession()->getCustomerId();

-        if (!is_array($orderItemIds) || !$this->_validateFormKey()) {
+        if (!is_array($orderItemIds) || !$this->_validateFormKey() || !$customerId) {
             $this->_goBack();
             return;
         }

         $itemsCollection = Mage::getModel('sales/order_item')
             ->getCollection()
+            ->addFilterByCustomerId($customerId)
             ->addIdFilter($orderItemIds)
             ->load();
         /* @var $itemsCollection Mage_Sales_Model_Mysql4_Order_Item_Collection */
@@ -709,4 +711,14 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
         $this->getResponse()->setHeader('Content-type', 'application/json');
         $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
     }
+
+    /**
+     * Get customer session model
+     *
+     * @return Mage_Customer_Model_Session
+     */
+    protected function _getCustomerSession()
+    {
+        return Mage::getSingleton('customer/session');
+    }
 }

app / code / core / Mage / Sales / Model / Resource / Order / Item / Collection.php ajouté Méthode supplémentaire addFilterByCustomerId dans la collection.

diff --git app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
index ee83ad48..c02afdf 100644
--- app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
+++ app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
@@ -152,4 +152,20 @@ class Mage_Sales_Model_Resource_Order_Item_Collection extends Mage_Sales_Model_R
         $this->getSelect()->where($resultCondition);
         return $this;
     }
+
+    /**
+     * Filter by customerId
+     *
+     * @param int|array $customerId
+     * @return Mage_Sales_Model_Resource_Order_Item_Collection
+     */
+    public function addFilterByCustomerId($customerId)
+    {
+        $this->getSelect()->joinInner(
+            array('order' => $this->getTable('sales/order')),
+            'main_table.order_id = order.entity_id', array())
+            ->where('order.customer_id IN(?)', $customerId);
+
+        return $this;
+    }
 }

app / code / core / Mage / Core / Modèle / Fichier / Validateur / Image.php

Si 'general / reprocess_images / active' est false, alors ignorez le retraitement des images. REMARQUE: Si vous désactivez le retraitement des images, le processus de téléchargement des images risque de poser des problèmes de sécurité.

diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
index 9d57202..6a939c3 100644
--- app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -91,6 +91,13 @@ class Mage_Core_Model_File_Validator_Image
         list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
         if ($fileType) {
             if ($this->isImageType($fileType)) {
+                /**
+                 * if 'general/reprocess_images/active' false then skip image reprocessing.
+                 * NOTE: If you turn off images reprocessing, then your upload images process may cause security risks.
+                 */
+                if (!Mage::getStoreConfigFlag('general/reprocess_images/active')) {
+                    return null;
+                }
                 //replace tmp image with re-sampled copy to exclude images with malicious data
                 $image = imagecreatefromstring(file_get_contents($filePath));
                 if ($image !== false) {

J'espère que ça vous sera utile. je pense


Pourriez-vous s'il vous plaît préciser comment exactement devrions-nous vérifier les éventuels problèmes de CartController.php et Collection.php. Où chercher exactement des problèmes sur le site?
Icon le

J'ai mis à jour les sites du correctif de sécurité 3, les trois sites remplacent ces deux fichiers. Soigneusement vérifier et mettre à jour ces deux fichiers. Il n'y a pas de Gitches dans les 3 sites
Rama Chandran M

10

EE 1.14.2.4

Typo à la ligne 726 du patch: autocomplete="new-pawwsord" ( app/design/adminhtml/default/default/template/backup/dialogs.phtml)

Le patch semble manquer 2 fichiers frontaux:

Patché:

app\design\adminhtml\default\default\template\oauth\authorize\form\login-simple.phtml

Non patché:

app\design\frontend\base\default\template\oauth\authorize\form\login-simple.phtml app\design\frontend\rwd\default\template\oauth\authorize\form\login-simple.phtml


De plus, n'oubliez pas de vérifier les remplacements locaux ... J'ai dû patcher manuellement un remplacement de pool de codes local de app\design\adminhtml\default\default\template\sales\order\view\info.phtml


Voir quasiobject la réponse « pour une question de la caisse OnePage. Ticket de support d'entreprise créé, en attente de réponse de Magento. Si vous ne voulez pas attendre un correctif mis à jour, un correctif potentiel consiste à modifier la déclaration "else" afin app\design\frontend\enterprise\default\template\giftcardaccount\onepage\payment\scripts.phtmld'inclure l'élément form_key de la manière suivante:
if (($('p_method_' + methodName) && $('p_method_' + methodName).checked) || elements[i].name == 'form_key') { ...


CE 1.9.2.4

Typo à la ligne 694 du patch: autocomplete="new-pawwsord" (app/design/adminhtml/default/default/template/backup/dialogs.phtml )

L'extension TrueOrderEdit doit être patché ... changement echo $_groupNameà echo $this->escapeHtml($_groupName)dans les fichiers suivants:

app\design\adminhtml\default\default\template\orderedit\sales\order\view\edit.phtml app\design\adminhtml\default\default\template\orderedit\sales\order\view\history.phtml app\design\adminhtml\default\default\template\orderedit\sales\order\view\info.phtml


Enfin, ce fichier de modèle principal devrait probablement également être corrigé avec la même mise à jour $ _groupName:

app\design\adminhtml\default\default\template\sales\order\view\edit.phtml


Toutes les versions 1.X

Si vous avez supprimé le /downloaderdossier (ou/downloader/template ) de votre base de code, vous devrez peut-être modifier manuellement le fichier de correctif .sh et supprimer la dernière section, en commençant pardiff --git downloader/template/login.phtml downloader/template/login.phtml

En ce qui concerne l' erreur de clé secrète invalide , veuillez consulter ma réponse ici: Clé secrète invalide de Magento 1.9. Veuillez rafraîchir la page


J'ai aussi trouvé la typo pour le patch 1.7.0.2. autocomplete = "new-pawwsord". Cela affecte-t-il de toute façon le fonctionnement du code? Si oui, peut-être que la version 2 du correctif est sur le chemin?
Icon le

Essentiall la faute de frappe est dans le code responsable de l'astuce FireFox. "C’est un faux champ caché pour tromper Firefox en remplissant automatiquement le mot de passe" ... ne ressemble à rien de majeur.
Icon le

@ kmdsax J'ai reçu un correctif du support technique pour résoudre le problème. Mis à jour ma réponse avec les détails.
Quasi

pourriez-vous svp m'aider à résoudre mon erreur magento.stackexchange.com/q/204446/57334
mardi

9

Nous à MageHost.pro trouvé un problème dans le correctif de Magento 1.9.1.1, fichier correctif.PATCH_SUPEE-10266_CE_1.9.1.1_v1-2017-09-15-04-59-56.sh

Erreur:

checking file app/code/core/Mage/Core/Model/File/Validator/Image.php
Hunk #1 FAILED at 90.
1 out of 1 hunk FAILED

Je l'ai réparé en remplaçant les lignes 454 à 472 par 454 à 471 de PATCH_SUPEE-10266_CE_1.9.1.0_v1-2017-09-13-06-34-33.sh

Ancien code, ligne 454-472:

diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
index 7f7b9d0..8a28da2 100644
--- app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -90,7 +90,13 @@ class Mage_Core_Model_File_Validator_Image
         $fileInfo = getimagesize($filePath);
         if (is_array($fileInfo) and isset($fileInfo[2])) {
             if ($this->isImageType($fileInfo[2])) {
-                return null;
+                /**
+                 * if 'general/reprocess_images/active' false then skip image reprocessing.
+                 * NOTE: If you turn off images reprocessing, then your upload images process may cause security risks.
+                 */
+                if (!Mage::getStoreConfigFlag('general/reprocess_images/active')) {
+                    return null;
+                }
             }
         }
         throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));

Nouveau code, lignes 454 à 471:

diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
index 8618bca..d3aba19 100644
--- app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -90,6 +90,13 @@ class Mage_Core_Model_File_Validator_Image
         list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
         if ($fileType) {
             if ($this->isImageType($fileType)) {
+                /**
+                 * if 'general/reprocess_images/active' false then skip image reprocessing.
+                 * NOTE: If you turn off images reprocessing, then your upload images process may cause security risks.
+                 */
+                if (!Mage::getStoreConfigFlag('general/reprocess_images/active')) {
+                    return null;
+                }
                 //replace tmp image with re-sampled copy to exclude images with malicious data
                 $image = imagecreatefromstring(file_get_contents($filePath));
                 if ($image !== false) {

Avez-vous examiné d'autres versions? Si oui, le même problème est-il présent?
Icon

1
@Icon Nous avons testé ce-1.6.0.0 ce-1.6.1.0 ce-1.6.2.0 ce-1.7.0.0 ce-1.7.0.1 ce-1.7.0.2 ce-1.8.0.0 ce-1.8.0.0 ce-1.8.1.0 ce-1.9.0.0 ce -1.9.0.1 ce-1.9.1.0 ce-1.9.1.1 ce-1.9.2.0 ce-1.9.2.1 ce-1.9.2.2 ce-1.9.2.3 ce-1.9.2.4 ce-1.9.2.0 ce-1.9.3.0 ce-1.9.3.1 ce -1.9.3.2 ce-1.9.3.3 ce-1.9.3.4. Toutes les versions avaient tous les correctifs précédents installés. Le seul avec une erreur de patch était ce-1.9.1.1.
Commentaires

6

Une seule clé de formulaire semble avoir été ajoutée à ce correctif.

diff --git app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
index 8756f3f..1c5cf37 100644
--- app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
+++ app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
@@ -96,7 +96,10 @@ class Mage_Adminhtml_Block_Widget_Form_Container extends Mage_Adminhtml_Block_Wi

     public function getDeleteUrl()
     {
-        return $this->getUrl('*/*/delete', array($this->_objectId => $this->getRequest()->getParam($this->_objectId)));
+        return $this->getUrl('*/*/delete', array(
+            $this->_objectId => $this->getRequest()->getParam($this->_objectId),
+            Mage_Core_Model_Url::FORM_KEY => $this->getFormKey()
+        ));
     }

Donc, si vous rencontrez des difficultés pour supprimer un widget du panneau d'administration, assurez-vous que votre URL de suppression est générée par le bloc, et que vous ne pouvez pas remplacer ce bloc.


Comment puis-je résoudre ce problème magento.stackexchange.com/q/204446/57334 ?
zus

5

Impossible de commander sur EE 1.11+

Dans app/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtmlle formulaire, le code de validation de clé a été supprimé et toute la commande est cassée. Pour plus d'informations, cliquez ici: https://magento.stackexchange.com/a/193442/2380

Solution pour l' instant (comme V2 pour EE 1.11+ sera publié à l' adresse de cette question): restaurer le fichier de modèle pour les deux enterprise/defaultet rwd/entreprisethèmes.

Différences entre patch et version

EDIT: 1.9.3.6 a été publié donc cette information n'est plus pertinente

L’un des principaux problèmes qui a été soulevé pour le moment est qu’il manque 3 correctifs de sécurité dans la version 1.9.3.5. Donc, je recommande fortement de ne mettre à jour que 1.9.3.5 pour le patch


Avez-vous d'autres informations à ce sujet, comme un exemple de fichier non corrigé dans la 1.9.3.5?
Luke Rodgers

Est-ce toujours en cours pour CE / Open Source? Pour EE / Commerce, aucun téléchargement 1.14.3.5 n'est disponible, uniquement 1.14.3.6.
7ochem

Sur la page de téléchargement de CE / Open Source, il n'y a plus que 1.9.3.6 (depuis le 14 septembre, dit-on) et plus 1.9.3.5
7ochem

4
1.9.3.6 a été publié hier, cette information n'est plus pertinente.
Ryan Hoerr

5

Nous essayons toujours de déterminer si cela est unique dans notre magasin, en raison de modèles personnalisés. Cependant, il est cassé avec le patch appliqué et non cassé lorsque nous revenons. Je voulais poster au cas où d'autres pourraient signaler la même chose.

Dans EE 1.14.2.0, nous ne pouvons pas dépasser l'étape de paiement du paiement avec le correctif appliqué. Nous sommes à jour sur SUPEE-9767 v2 avant d'appliquer le nouveau correctif.

Notre problème semble provenir de leur suppression || elements[i].name == 'form_key'de:

app/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtml

Il est retiré de la enablePaymentMethodsboucle. Cela semble laisser l'entrée masquée form_key masquée du formulaire désactivée et donc non transmise au contrôleur lors de sa soumission.

<input name="form_key" type="hidden" value="X" disabled="">

Ensuite, $this->_validateFormKey()échoue et le contrôleur ne renvoie rien.


Mise à jour 1 (2017-09-18) : J'ai soumis un ticket au support technique de Magento vendredi et on m'a dit qu'il "n'avait pas encore été signalé par un commerçant". Au lieu d’envoyer des sauvegardes, j’ai essayé de dupliquer l’installation propre des versions 1.14.2.4 et 1.14.3.4 avec les correctifs applicables appliqués. J'ai pu dupliquer et répondu au ticket. En attente d'une nouvelle réponse.

Remarque: Système> Configuration> Admin> Sécurité> Activer la validation de la clé de formulaire à la validation doit être "Oui". Si "Non", vous ne verrez pas le problème.


Mise à jour 2 (2017-09-18) : J'ai remarqué que je ne pouvais pas reproduire le problème avec 1.14.3.6, mais lorsque j'ai vérifié le fichier de modèle ci-dessus, il || elements[i].name == 'form_key'est toujours présent. Il semble que les correctifs n'aient pas dû l'enlever. Envoyez également ces informations au support de Magento.


Mise à jour 3 (2017-09-20): Je viens de recevoir un correctif pour résoudre le problème pour 1.14.0.0–1.14.3.4, qui restaure simplement la form_keyligne sur le modèle. Demandez de l'aide pour SUPEE-10348.


Même problème ici le 1.14.2.4
kmdsax le

Merci @ kmdsax. J'ai également soumis un ticket et j'attends une confirmation du support.
Quasi

Avez-vous essayé de reproduire la même erreur sur la version 1.9.2.4 CE?
Icon le

1
@Icon je n'ai pas. Je travaille pour un seul commerçant et nous sommes EE. Cependant, je ne pense pas que cela serait affecté puisqu'il s'agit d'un bloc de script de carte-cadeau EE. Cela ne devrait pas exister en CE.
Quasi

4

Lorsque vous accédez à Magento Connect, et après lorsque vous cliquez sur "Revenir à l'administrateur" dans le coin supérieur droit de la page. En revenant au tableau de bord admin, vous obtenez un message d'erreur

message d'erreur rouge : "Clé secrète non valide. Veuillez actualiser la page."

Une fois la page actualisée, sa disparition


Mis à jour le: 15 sept. 2017

Si vous vous connectez à l’administrateur de Magento, disons Dashboard. Sans vous déconnecter du panneau Tableau de bord, ouvrez une autre fenêtre de navigateur dans le même navigateur et accédez à exemple.com/admin. Il se connectera automatiquement et affichera exactement le même message.

message d'erreur rouge : "Clé secrète non valide. Veuillez actualiser la page."

Jusqu'à présent, c'est le seul problème que j'ai trouvé. Je ne suis même pas sûr que ce soit un problème sérieux car le message disparaît après l'actualisation.


Peut-être que cela vient de la fermeture de Magento Connect: magento.com/blog/magento-news/…
Kevin Krieger

1
@KalvinKlien Je suis aussi sur la 1.7.0.2. Je vois ce message chaque fois que je vais et viens entre admin et Magneto Connect (/ downloader). J'essaie simplement de savoir si les autres le voient aussi. Cela ne semble pas être un problème majeur.
Icon le

3
Je le vois aussi dans 1.9.2.1. Quelqu'un a déjà déposé un rapport de bogue dans le traqueur de bogues Magento .
Michael Thessel le

1
C'est une erreur dans Mage_Adminhtml_Controller_Action :: preDispatch (): if ($_keyErrorMsg != '') { Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };devrait êtreif (!$_isValidFormKey){ Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };
Laura

1
hmmmm, c'est une solution partielle jusqu'à présent. Je vois toujours l'erreur de temps en temps, je ne sais pas s'il y a un autre contrôleur qui a ce problème
Kalvin Klien

4

J'ai demandé au support de Magento le problème suivant

app/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtml

Ils m'ont répondu ce matin et ont publié un nouveau correctif PATCH_SUPEE-10348 .

Magento vient de résoudre le problème en faisant un retour dans ce fichier.

Index: app / design / frontend / entreprise / default / template / giftcardaccount / onepage / payment / scripts.phtml
=============================================== ==================
--- app / design / frontend / entreprise / default / template / giftcardaccount / onepage / payment / scripts.phtml
+++ app / design / frontend / entreprise / default / template / giftcardaccount / onepage / payment / scripts.phtml
@@ -35,6 +35,7 @@
             if (éléments [i] .name == 'paiement [méthode]'
                 || éléments [i] .name == 'paiement [use_customer_balance]'
                 || éléments [i] .name == 'paiement [use_reward_points]'
+ || éléments [i] .name == 'clé_formulaire'
             ) {
                 nomMéthode = éléments [i] .value;
                 if ((free && methodName == 'free') || (! free && methodName! = 'free')) {

1
Peut confirmer que ce correctif est disponible dans le portail partenaire.
Luke Rodgers

Merci pour l'information. J'avais oublié de donner cette information
cghisi

3

J'ai rencontré un problème avec les modèles de courrier électronique, les CSS personnalisées et modman. Si, par exemple, vous avez un thème basé sur rwd/defaultune personnalisation skin/frontend/package/theme/css/email-inline.csset que vos fichiers de skin sont inclus via modman via un lien symbolique, le fichier CSS ne sera pas ajouté au modèle de courrier après l'application de SUPEE-10266. Le problème est que, dans Mage_Core_Model_Email_Template_Abstract::_getCssFileContent, certains contrôles ont été introduits .:

                 '_theme' => $theme,
             )
         );
+        $filePath = realpath($filePath);
+        $positionSkinDirectory = strpos($filePath, Mage::getBaseDir('skin'));
+        $validator = new Zend_Validate_File_Extension('css');

-        if (is_readable($filePath)) {
+        if ($validator->isValid($filePath) && $positionSkinDirectory !== false && is_readable($filePath)) {
             return (string) file_get_contents($filePath);
         }

Je l'ai résolu avec un bidouillage sale avec une app/code/local/Mage/Core/Model/Email/Template/Abstract.phpdérogation pour le moment. J'ai dû affaiblir la vérification pour pouvoir charger le fichier CSS à partir du répertoire modman:

$filePath = realpath($filePath);
$baseDirectory = Mage::getBaseDir();
$fullSkinDirectory = Mage::getBaseDir('skin');
$relativeSkinDirectory = substr($fullSkinDirectory, strlen($baseDirectory));
$positionSkinDirectory = strpos($filePath, $relativeSkinDirectory);
$validator = new Zend_Validate_File_Extension('css');
$noDirectoryTraversal = strpos($filename, '..') === false;

if ($validator->isValid($filePath) && $positionSkinDirectory !== false && $noDirectoryTraversal
    && is_readable($filePath)) {
    return (string) file_get_contents($filePath);
}

Il ne vérifiera plus si le chemin contient le répertoire de skin complet, mais seulement si le chemin contient la chaîne /skinet si elle n'inclut pas .., ce qui devrait empêcher les attaques de traversée de répertoire.


1
Supprimé ma réponse comme la vôtre est plus complète. Le hack que j'ai utilisé consistait à vérifier if (strpos($filename, '..') === false) { $positionSkinDirectory = 1; }la ligne après $positionSkinDirectoryson paramétrage initial. Cela devrait aider à éviter la traversée de répertoires.
Peter O'Callaghan

Je tiens à noter que cette faiblesse dans ce cas signifie, le rendant de nouveau vulnérable, et que l'utilisation de cette solution est un risque direct pour la sécurité
Flyingmana

@ PeterO'Callaghan bonne idée! Je viens d'ajouter votre chèque à mon code de réponse.
Simon

@Flyingmana, cela devrait réduire considérablement le risque.
Simon

2

Voici la liste complète des correctifs affectés par la autocomplete="new-pawwsord"faute de frappe:

CE 1.7.0.0-1.7.0.2      PATCH_SUPEE-10266_CE_1.7.0.2_v1-2017-09-13-06-27-12.sh:664
CE 1.8.0.0-1.8.1.0      PATCH_SUPEE-10266_CE_1.8.1.0_v1-2017-09-13-06-28-08.sh:665
CE 1.9.0.0-1.9.0.1      PATCH_SUPEE-10266_CE_1.9.0.1_v1-2017-09-13-06-31-01.sh:665
CE 1.9.1.0              PATCH_SUPEE-10266_CE_1.9.1.0_v1-2017-09-13-06-34-33.sh:733
CE 1.9.1.1              PATCH_SUPEE-10266_CE_1.9.1.1_v1-2017-09-15-04-59-56.sh:734
CE 1.9.2.0-1.9.2.4      PATCH_SUPEE-10266_CE_1.9.2.4_v1-2017-09-13-06-37-37.sh:694
CE 1.9.3.0-1.9.3.2      PATCH_SUPEE-10266_CE_1.9.3.2_v1-2017-09-13-06-38-58.sh:694
CE 1.9.3.3-1.9.3.4      PATCH_SUPEE-10266_CE_1.9.3.4_v1-2017-09-13-06-39-58.sh:694
EE 1.12.0.0             PATCH_SUPEE-10266_EE_1.12.0.0_v1-2017-09-13-08-09-14.sh:696
EE 1.12.0.1-1.12.0.2    PATCH_SUPEE-10266_EE_1.12.0.2_v1-2017-09-13-08-06-57.sh:696
EE 1.13.0.0-1.13.1.0    PATCH_SUPEE-10266_EE_1.13.1.0_v1-2017-09-13-08-04-05.sh:696
EE 1.14.0.0-1.14.0.1    PATCH_SUPEE-10266_EE_1.14.0.1_v1-2017-09-13-08-01-04.sh:696
EE 1.14.1.0             PATCH_SUPEE-10266_EE_1.14.1.0_v1-2017-09-13-07-57-59.sh:764
EE 1.14.2.0             PATCH_SUPEE-10266_EE_1.14.2.0_v1-2017-09-13-07-07-14.sh:764
EE 1.14.2.1-1.14.2.4    PATCH_SUPEE-10266_EE_1.14.2.4_v1-2017-09-13-06-57-21.sh:726
EE 1.14.3.0-1.14.3.2    PATCH_SUPEE-10266_EE_1.14.3.2_v1-2017-09-13-06-53-35.sh:716
EE 1.14.3.3-1.14.3.4    PATCH_SUPEE-10266_EE_1.14.3.3_v1-2017-09-13-06-51-06.sh:716

0

Sur Magento 1.8.1, j'ai rencontré des problèmes avec les fichiers suivants:

app/code/core/Mage/Core/Model/File/Validator/Image.php
app/code/core/Mage/Core/etc/config.xml
app/locale/en_US/Mage_Adminhtml.csv

J'ai fini par télécharger la dernière version de Magento qui ne contient pas le correctif. Dans ce cas, Magento 1.9.3.4 .

Le remplacement des fichiers "corrompus" par celui du téléchargement a résolu le problème. J'ai pu appliquer le correctif avec succès.

Mais faites attention: je suggère de restaurer les 3 fichiers après avoir appliqué de nouveau les correctifs et de les modifier manuellement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.