सुरक्षा पैच SUPEE-10266 - संभावित मुद्दे?


36

13 APPSEC मुद्दों को संबोधित करते हुए Magento 1 के लिए एक नया सुरक्षा पैच बाहर है

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

इस पैच को लागू करते समय आपको किन सामान्य मुद्दों को देखना होगा?

SUPEE-10266, Magento कॉमर्स 1.14.3.6 और ओपन सोर्स 1.9.3.6 में कई सुरक्षा संवर्द्धन शामिल हैं, जो क्रॉस-साइट अनुरोध जालसाजी (CSRF), अनधिकृत डेटा लीक और प्रमाणित उपयोगकर्ता उपयोगकर्ता दूरस्थ कोड निष्पादन भेद्यता में मदद करते हैं। इन रिलीज़ों में एक-चरणीय चेकआउट का उपयोग करके छवि पुनः लोड करने और भुगतान के साथ समस्याओं के समाधान शामिल हैं।


समस्या का सामना जब 1.9.3.2 के लिए आवेदन - magento.stackexchange.com/questions/193451/...
Shrenik

जवाबों:


13

मैगेंटो बैकएंड से फाइलों में से कुछ महत्वपूर्ण जानकारी यहाँ साझा करें। फ़ाइल सूची:

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

महत्वपूर्ण बात यह है कि इस तीन फ़ाइलों की जाँच करें।

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

एप्लिकेशन / कोड / कोर / दाना / चेकआउट / नियंत्रक / CartController.php अतिरिक्त स्थिति की जाँच करें ग्राहक आईडी :

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');
+    }
 }

एप्लिकेशन / कोड / कोर / दाना / बिक्री / मॉडल / संसाधन / आदेश / आइटम / संग्रह। अतिरिक्त जोड़ा गया अतिरिक्त विधि addFilterByCustomerId संग्रह में।

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;
+    }
 }

एप्लिकेशन / कोड / कोर / दाना / कोर / मॉडल / फ़ाइल / सत्यापनकर्ता / Image.php

यदि 'सामान्य / reprocess_images / सक्रिय' गलत है, तो छवि पुनरावृत्ति छोड़ें। नोट: यदि आप छवियों को पुनर्संसाधन बंद करते हैं, तो आपकी अपलोड छवियों की प्रक्रिया में सुरक्षा जोखिम हो सकते हैं

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

आशा है कि यह मददगार होगा। मुझे लगता है


क्या आप यह निर्दिष्ट कर सकते हैं कि हमें CartController.php और Collection.php संभावित मुद्दों के लिए कितनी जाँच करनी चाहिए। वेबसाइट पर संभव glitches के लिए देखने के लिए वास्तव में कहाँ?
आइकन

मेरे पास सुरक्षा पैच 3 साइट अपडेट हैं, सभी तीन साइटें इस दो फाइलों को ओवरराइड करती हैं। इस दो फाइलों को ध्यान से जांचें और अपडेट करें। सभी 3 साइटों में कोई गड़बड़ नहीं होती है
राम चंद्रन

10

ईई 1.14.2.4

पैच की लाइन 726 पर टाइपो: autocomplete="new-pawwsord" ( app/design/adminhtml/default/default/template/backup/dialogs.phtml)

पैच 2 फ्रंटएंड फ़ाइलों को याद करता है:

समझौता:

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

पैच नहीं किया गया:

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


इसके अलावा स्थानीय ओवरराइड्स के लिए जांच करना मत भूलना ... मुझे मैन्युअल रूप से एक स्थानीय कोडपूल ओवरराइड पैच करना था app\design\adminhtml\default\default\template\sales\order\view\info.phtml


एक चेकआउट मुद्दे के लिए quasiobject का जवाब देखें । मैगेंटो से प्रतिक्रिया का इंतजार करते हुए एंटरप्राइज सपोर्ट टिकट बनाया गया। यदि आप एक अद्यतन पैच के लिए इंतजार नहीं करना चाहते हैं, तो एक संभावित फिक्स app\design\frontend\enterprise\default\template\giftcardaccount\onepage\payment\scripts.phtmlफॉर्म_की तत्व को शामिल करने के लिए "और" क़ानून को संशोधित करना है:
if (($('p_method_' + methodName) && $('p_method_' + methodName).checked) || elements[i].name == 'form_key') { ...


सीई 1.9.2.4

पैच की लाइन 694 पर टाइपो: autocomplete="new-pawwsord" ( app/design/adminhtml/default/default/template/backup/dialogs.phtml)

TrueOrderEdit विस्तार समझौता किए जाने की आवश्यकता ... परिवर्तन echo $_groupNameकरने के लिए echo $this->escapeHtml($_groupName)निम्न फ़ाइलों में:

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


अंत में, इस कोर टेम्पलेट फ़ाइल को भी समान $ _groupName अपडेट के साथ पैच किया जाना चाहिए:

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


सभी 1.X संस्करण

यदि आपने अपने कोडबेस से /downloaderफोल्डर (या /downloader/template) डिलीट कर दिया है , तो आपको .sh पैच फाइल को मैन्युअल रूप से एडिट करना होगा और अंतिम सेक्शन को हटाना होगा, जिसके साथ शुरू होगाdiff --git downloader/template/login.phtml downloader/template/login.phtml

अमान्य गुप्त कुंजी के बारे में , कृपया मेरा उत्तर यहाँ देखें: Magento 1.9 अवैध गुप्त कुंजी। कृपया पेज को रिफ्रेश करें


मुझे 1.7.0.2 पैच के लिए टाइपो भी मिला। स्वत: पूर्ण = "नई-pawwsord"। क्या यह किसी भी स्थिति में कोड ऑपरेशन को प्रभावित करता है? यदि हां, तो रास्ते में पैच का शायद वर्जन 2?
आइकन

Essentiall टाइपो फायरफॉक्स चाल के लिए जिम्मेदार कोड में है। "यह एक डमी छिपा हुआ क्षेत्र है जो ऑटो से पासवर्ड भरने के लिए फ़ायरफ़ॉक्स ट्रिक करता है" ... ऐसा कुछ भी नहीं लगता है।
आइकन

@kmdsax मुझे समस्या को ठीक करने के लिए समर्थन से एक पैच मिला है। विवरण के साथ मेरे उत्तर को अपडेट किया।
quasiobject

क्या आप मेरी त्रुटि को हल करने के लिए pls मेरी मदद कर सकते हैं। Magento.stackexchange.com/q/204446/57334
zus

9

हम MageHost.pro पर Magento 1.9.1.1, पैच फ़ाइल के लिए पैच में एक समस्या पाई गईPATCH_SUPEE-10266_CE_1.9.1.1_v1-2017-09-15-04-59-56.sh

त्रुटि:

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

मैंने इसे 454-471 से 454-472 लाइनों को बदलकर इसे ठीक किया PATCH_SUPEE-10266_CE_1.9.1.0_v1-2017-09-13-06-34-33.sh

पुराना कोड, लाइन 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.'));

नया कोड, लाइनें 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) {

क्या आपने अन्य संस्करणों में देखा है? यदि हाँ, तो क्या वही समस्या मौजूद है?
चिह्न

1
@ आईकॉन हमने 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.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.3.0 CE-1.9.3.1 CE -1.9.3.2 CE-1.9.3.3 Ce-1.9.3.4। सभी संस्करणों में पिछले सभी पैच स्थापित थे। पैच त्रुटि वाला एकमात्र CE-1.9.1.1 था।
जेरोइन वर्म्यूलेन - मेगेहोस्ट

6

इस पैच में केवल 1 फ़ॉर्म कुंजी जोड़ी गई है।

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()
+        ));
     }

इसलिए यदि आपको व्यवस्थापक पैनल से विजेट हटाने में कोई कठिनाई है, तो सुनिश्चित करें कि आपका डिलीट यूआरएल ब्लॉक द्वारा उत्पन्न किया जा रहा है, और यह कि आपके पास इस ब्लॉक का कोई ओवरराइड नहीं है।


मैं इस Magento.stackexchange.com/q/204446/57334 को कैसे हल कर सकता हूं ?
zus

5

EE 1.11+ पर चेकआउट करना असंभव है

में app/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtmlप्रपत्र कुंजी सत्यापन कोड हटा दिया गया है और इसे यहाँ संपूर्ण चेकआउट, अधिक जानकारी टूट जाता है: https://magento.stackexchange.com/a/193442/2380

अब के लिए समाधान (ईई 1.11+ के लिए V2 के रूप में उस मुद्दे को संबोधित करने के लिए जारी किया जाएगा): दोनों enterprise/defaultऔर rwd/entrepriseविषयों के लिए टेम्पलेट फ़ाइल को रोलबैक करें ।

पैच और संस्करण के बीच अंतर

EDIT: 1.9.3.6 इस प्रकार जारी किया गया था कि यह जानकारी अधिक प्रासंगिक नहीं है

अब तक उठाए गए मुख्य मुद्दों में से एक यह है कि 1.9.3.5 पैच से 3 सुरक्षा पैच गायब है। इस प्रकार मैं दृढ़ता से केवल पैचिंग की सलाह देता हूं और अभी तक 1.9.3.5 पर अपडेट नहीं कर रहा हूं


क्या आपके पास इस पर कोई और जानकारी है, जैसे कि 1.9.3.5 में एक अप्रकाशित फ़ाइल का उदाहरण?
ल्यूक रॉजर्स

क्या यह अभी भी सीई / ओपन सोर्स के लिए चल रहा है? ईई / कॉमर्स के लिए कोई 1.14.3.5 डाउनलोड उपलब्ध नहीं है, केवल 1.14.3.6।
7ochem

CE / ओपन सोर्स डाउनलोड पेज पर भी केवल 1.9.3.6 है (14 सितंबर से इसे कहते हैं) और कोई 1.9.3.5 अब नहीं
7ochem

4
कल 1.9.3.6 जारी किया गया था, यह जानकारी अब प्रासंगिक नहीं है।
रयान होउर

5

अभी भी यह निर्धारित करने की कोशिश की जा रही है कि क्या यह कस्टम टेम्पलेट्स के कारण हमारे स्टोर के लिए अद्वितीय है। हालाँकि, यह लागू किए गए पैच के साथ टूटा हुआ है और जब हम वापस लौटते हैं तो टूटा नहीं है। मैं मामले में पोस्ट करना चाहता था, अन्य लोग भी इसकी रिपोर्ट कर सकते हैं।

ईई 1.14.2.0 में, हम लागू पैच के साथ चेकआउट के भुगतान सूचना चरण को आगे बढ़ाने में असमर्थ हैं। हम नए पैच को लागू करने से पहले SUPEE-9767 v2 तक मौजूद हैं।

हमारा मुद्दा उन्हें हटाने || elements[i].name == 'form_key'से लगता है :

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

यह enablePaymentMethodsलूप से निकाल दिया गया है। यह प्रपत्र के छिपे हुए फ़ॉर्म_की इनपुट को अक्षम करने के लिए प्रकट होता है और इसलिए प्रस्तुत किए जाने पर नियंत्रक को पास नहीं किया जाता है।

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

फिर, $this->_validateFormKey()विफल रहता है और नियंत्रक कुछ भी नहीं देता है।


अपडेट 1 (2017-09-18) : मैंने शुक्रवार को मैगेंटो के समर्थन के लिए एक टिकट जमा किया और इसे "किसी भी व्यापारियों द्वारा अभी तक सूचित नहीं किया गया" बताया गया था। बैकअप भेजने के बजाय, मैंने लागू पैच के साथ 1.14.2.4 और 1.14.3.4 की एक साफ इंस्टॉल पर डुप्लिकेट करने की कोशिश की। मैं टिकट की नकल करने और जवाब देने में सक्षम था। नई प्रतिक्रिया की प्रतीक्षा है।

नोट: सिस्टम> कॉन्फ़िगरेशन> व्यवस्थापक> सुरक्षा> चेकआउट पर फ़ॉर्म कुंजी सत्यापन सक्षम करें "हाँ" होना चाहिए। यदि "नहीं", तो आप इस मुद्दे को नहीं देखेंगे।


अपडेट 2 (2017-09-18) : नोटिफ़ाइड मैं 1.14.3.6 के साथ इस मुद्दे को डुप्लिकेट नहीं कर सका , लेकिन जब मैंने ऊपर टेम्प्लेट फ़ाइल की जाँच की, तब || elements[i].name == 'form_key'भी वहीं है। लगता है कि पैच इसे नहीं निकालना चाहिए था। इस जानकारी को Magento के समर्थन के लिए भी भेजा।


अपडेट 3 (2017-09-20): मुझे सिर्फ 1.14.0.0-1.14.3.4 के मुद्दे को ठीक करने के लिए एक पैच मिला है, जो सिर्फ form_keyटेम्पलेट को लाइन को पुनर्स्थापित करता है । SUPEE-10348 के लिए समर्थन पूछें।


१.१४.२.४ पर यहां एक ही मुद्दा
१ds

धन्यवाद @kmdsax मैंने एक टिकट भी जमा किया और समर्थन से पुष्टि प्राप्त करने की प्रतीक्षा कर रहा था।
quasiobject

क्या आपने 1.9.2.4 CE संस्करण पर समान त्रुटि दोहराने की कोशिश की है?
आइकन

1
@ मैं नहीं किया है। मैं एक ही व्यापारी के लिए काम करता हूं और हम ईई हैं। हालाँकि, मुझे नहीं लगता कि यह ईई गिफ्ट कार्ड स्क्रिप्ट ब्लॉक के बाद से प्रभावित होगा। सीई में मौजूद नहीं होना चाहिए।
quasiobject

4

जब आप Magento Connect पर जाते हैं, और जब आप पृष्ठ के ऊपरी दाएँ कोने में "व्यवस्थापन पर लौटें" पर क्लिक करते हैं। व्यवस्थापक डैशबोर्ड पर वापस लौटने पर, आपको एक त्रुटि संदेश मिलता है

लाल त्रुटि संदेश: "अमान्य गुप्त कुंजी। कृपया पृष्ठ ताज़ा करें।"

एक बार जब आप पृष्ठ को ताज़ा करते हैं, तो यह चला गया।


अपडेट किया गया: 15 सितंबर, 2017

यदि आप Magento के व्यवस्थापक में प्रवेश करते हैं, तो डैशबोर्ड को बताएं। डैशबोर्ड पैनल से लॉग-आउट किए बिना आप उसी ब्राउज़र में एक और ब्राउज़र विंडो खोलते हैं और example.com/admin पर जाते हैं, यह स्वतः लॉगिन करेगा और ठीक उसी संदेश को दिखाएगा

लाल त्रुटि संदेश: "अमान्य गुप्त कुंजी। कृपया पृष्ठ ताज़ा करें।"

अब तक इसका एकमात्र मुद्दा मुझे मिला है। मुझे यकीन भी नहीं है कि अगर इसका ठोस मुद्दा ताज़ा होने के बाद संदेश चला गया।


शायद यह Magento कनेक्ट को बंद करने से आता है: magento.com/blog/magento-news/…
केविन

1
@KalvinKlien मैं भी 1.7.0.2 पर हूं। मैं यह संदेश हर बार देखता हूं कि मुझे एडमिन और मैग्नेटो कनेक्ट (/ डाउनलोडर) के बीच आगे और पीछे मिला। मैं सिर्फ यह पता लगाने की कोशिश कर रहा हूं कि क्या अन्य लोग भी इसे देखते हैं .. यह एक प्रमुख मुद्दे की तरह प्रतीत नहीं होता है।
आइकन

3
मैं इसे 1.9.2.1 में भी देख रहा हूं। किसी ने पहले से ही Magento के बग ट्रैकर में एक बग रिपोर्ट दर्ज की है ।
माइकल थेसल

1
यह Mage_Adminhtml_Controller_Action :: preDispatch () में एक त्रुटि if ($_keyErrorMsg != '') { Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };हैif (!$_isValidFormKey){ Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };
लौरा

1
हम्म्, यह अब तक का एक आंशिक समाधान है। मुझे अभी भी समय-समय पर त्रुटि दिखाई देती है, निश्चित नहीं है कि क्या कोई अन्य नियंत्रक है जिसके पास यह मुद्दा है
कल्विन क्लेन

4

मैंने निम्नलिखित समस्या के बारे में Magento के समर्थन से पूछा

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

उन्होंने आज सुबह मुझे जवाब दिया और एक नया पैच PATCH_SUPEE-10348 जारी किया ।

मैगेंटो ने इस फाइल में केवल एक रिवर्ट करके समस्या का हल किया।

इंडेक्स: ऐप / डिज़ाइन / फ्रंटएंड / एंटरप्राइज / डिफॉल्ट / गिफ्टकार्डैकाउंट / ऑनएपेज / भुगतान / स्क्रिप्ट.phtml
================================================== =================
--- एप्लिकेशन / डिजाइन / सामने / उद्यम / डिफ़ॉल्ट / टेम्पलेट / giftcardaccount / onepage / भुगतान / script.phtml
+++ ऐप / डिज़ाइन / फ्रंटएंड / एंटरप्राइज़ / डिफ़ॉल्ट / टेम्पलेट / giftcardaccount / onepage / भुगतान / स्क्रिप्ट.phtml
@@ -35,6 +35,7 @@
             अगर (तत्व [i] .name == 'भुगतान [विधि]'
                 || एलिमेंट्स [i] .name == 'भुगतान [उपयोग_कार्यकर्ता_बुलेंस]'
                 || एलिमेंट्स [i] .name == 'भुगतान [use_reward_point]'
+ || तत्व [i] .name == 'form_key'
             ) {
                 methodName = elements [i] .value;
                 if ((free && methodName == 'free') || ((! free && methodName! = 'free')) {

1
पुष्टि कर सकते हैं कि यह पैच पार्टनर पोर्टल में उपलब्ध है।
ल्यूक रॉजर्स

जानकारी के लिए धन्यवाद। मैं यह जानकारी देना भूल गया था
cghisi

3

मुझे ईमेल टेम्पलेट, कस्टम सीएसएस और मॉडमैन के साथ एक समस्या का सामना करना पड़ा। यदि आपके पास उदाहरण के आधार पर एक थीम है rwd/default, तो एक कस्टम है skin/frontend/package/theme/css/email-inline.cssऔर आपकी त्वचा की फाइलें मॉडेम के माध्यम से एक सिमलिंक के माध्यम से शामिल की गई हैं, तो SUPEE-10266 को लागू करने के बाद सीएसएस को मेल टेम्पलेट में नहीं जोड़ा जाएगा। मुद्दा यह है कि Mage_Core_Model_Email_Template_Abstract::_getCssFileContent, कुछ जाँच शुरू की गई हैं:

                 '_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);
         }

मैं इसे app/code/local/Mage/Core/Model/Email/Template/Abstract.phpसमय के लिए एक ओवरराइड के साथ एक गंदे हैक के साथ हल किया। मुझे चेक को कमजोर करना पड़ा, ताकि सीएसएस फ़ाइल को मॉडमैन डायरेक्टरी से लोड करना संभव हो:

$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);
}

यह जांच नहीं करेगा कि क्या पथ में पूर्ण त्वचा निर्देशिका शामिल है, लेकिन केवल यह जांच करेगा कि क्या पथ में स्ट्रिंग शामिल है /skinऔर यदि यह शामिल नहीं है .., जो निर्देशिका ट्रैवर्सल हमलों को रोकना चाहिए।


1
मेरा उत्तर नष्ट कर दिया क्योंकि तुम्हारा अधिक पूर्ण है। मूल रूप से सेट if (strpos($filename, '..') === false) { $positionSkinDirectory = 1; }होने के बाद मैंने जिस हैक का उपयोग किया था , उसे पंक्ति पर जांचना था $positionSkinDirectory। यह निर्देशिका ट्रैवर्सल से बचने में मदद करनी चाहिए।
पीटर

मैं ध्यान देना चाहता हूं, कि इस मामले में कमजोर का मतलब है, इसे फिर से कमजोर बनाना, और इस समाधान का उपयोग करना एक सीधा सुरक्षा जोखिम है
फ्लाइंगमैन

@ पीटरओ कैलाघन अच्छा विचार! मैंने सिर्फ अपने उत्तर कोड में अपना चेक जोड़ा है।
साइमन

@ फ़ेंसिंगमैन को नाटकीय रूप से जोखिम कम करना चाहिए।
साइमन

2

यहाँ autocomplete="new-pawwsord"टाइपो से प्रभावित पैच की पूरी सूची है :

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

Magento 1.8.1 पर मैं निम्नलिखित फ़ाइलों के साथ मुद्दों में भाग गया:

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

मैं नवीनतम Magento के संस्करण को डाउनलोड करने के साथ समाप्त हुआ जिसमें पैच शामिल नहीं है। इस मामले में Magento 1.9.3.4

डाउनलोड में से एक के साथ 'दूषित' फ़ाइलों को बदलना समस्या को ठीक करता है। मैं पैच को सफलतापूर्वक लागू करने में सक्षम था।

लेकिन सावधान रहें: मैं फिर से पैच करने के बाद 3 फ़ाइलों को वापस करने और फ़ाइलों को मैन्युअल रूप से संपादित करने का सुझाव देता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.