Magento सुरक्षा पैच SUPEE-6482, क्या पैच किया गया है?


28

आज ०४.० Today.२०१५ को एक नया सुरक्षा पैच जारी किया गया था, कुछ सहयोगियों और मैं पैच की जाँच कर रहे थे, और क्या बदल गया है के बारे में कुछ चर्चा करने के लिए हमेशा अच्छा होता है, किसी को भी पता है कि संभावित हमले क्या हैं जो दुकान को प्रभावित और अप्रकाशित कर सकते हैं? सबसे खराब क्या हो सकता है?

अपडेट: मैं सिर्फ पोस्ट को पूरा करने के लिए आज भेजे गए ईमेल मैगनेटो को जोड़ना चाहता था। Magento ईमेल अपडेट


1
मुझे यकीन है कि इन दिनों एक रैप-अप होगा। हालाँकि, यदि आपने इसे पहले ही चेक कर लिया है और चर्चा चाहते हैं, तो आगे बढ़ें! अपने विचार और निष्कर्ष साझा करें!
mam08ixo

2
पैच ही, नहीं। 1.9.2.1 के लिए पूर्ण इंस्टॉल को उन परिवर्तनों के लिए जांचना होगा, इस बिंदु पर यह केवल 4 सुरक्षा मुद्दों को संबोधित करता प्रतीत होता है
Fiasco Labs

2
आपको पूर्ण अपग्रेड करना होगा, या बैकपोर्ट 1.9.2.0 => सीएमएस ब्लॉक और विजेट कैशिंग magento-1921/app/code/core/Mage/Cms/Block/Block.phpऔरmagento-1921/app/code/core/Mage/Cms/Block/Widget/Block.php
फ़िस्को लैब्स

2
merch.docs.magento.com/ce/user_guide/… - मैंने सोचा है कि जब पिछले दिनों हेडर पर इतना ध्यान केंद्रित करने के बाद अगला पैच आएगा। और वहाँ यह है!
हकर्रे

2
@ खाकरे - मैं हेडर को शामिल करने से पहले पैच सामग्री पढ़ूंगा, जब तक कि वे हेडर वास्तव में एपीआई में नहीं होंगे। पूर्ण डाउनलोड http नियंत्रक और जावास्क्रिप्ट कुकी टेम्पलेट में कुछ पैच है, लेकिन 6482 पैच नहीं है।
Fiasco Labs

जवाबों:


13

वास्तविक सुरक्षा पैच ( SUPEE-6482 ) केवल दो निम्न फ़ाइलों को प्रभावित करता है और एक एपीआई पैच है।

app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
app/code/core/Mage/Catalog/Model/Product/Api/V2.php

पूर्ण 1.9.2.1 स्थापित पूरी तरह से एक अलग मामला है। मैं अन्य दो वस्तुओं का पता लगाने के लिए 1.9.2.0 और 1.9.2.1 के बीच स्रोत कोड को अलग करूंगा।

रिलीज़ नोट्स पूर्ण इंस्टॉलर के लिए हैं, आपको पैच को यह देखने के लिए देखना होगा कि क्या इसमें वास्तव में रिलीज़ नोटों में उल्लिखित सभी आइटम शामिल हैं या नहीं।

एक अप्रकाशित सर्वर चलाने के निहितार्थ:

  1. क्रॉस-साइट स्क्रिप्टिंग का उपयोग अनवेलिड हेडर्स => कैश पॉइज़निंग के साथ
  2. Magento SOAP API => दूरस्थ कोड ऑटोलॉड में स्वतः शामिल फ़ाइल
  3. उपहार रजिस्ट्री खोज में XSS => कुकी चोरी और उपयोगकर्ता प्रतिरूपण
  4. WSDL फ़ाइल में SSRF भेद्यता => आंतरिक सर्वर जानकारी रिसाव और दूरस्थ फ़ाइल समावेशन

नोट: फ़ाइलों को पैच, हम्म के साथ पैच नहीं किए गए पूर्ण इंस्टॉल आर्काइव में पैच किया गया है?

diff -r magento-1920/app/code/core/Mage/Core/Controller/Request/Http.php magento-1921/app/code/core/Mage/Core/Controller/Request/Http.php
300a301
>         $host = $_SERVER['HTTP_HOST'];
302,303c303,304
<             $host = explode(':', $_SERVER['HTTP_HOST']);
<             return $host[0];
---
>             $hostParts = explode(':', $_SERVER['HTTP_HOST']);
>             $host =  $hostParts[0];
305c306,313
<         return $_SERVER['HTTP_HOST'];
---
> 
>         if (strpos($host, ',') !== false || strpos($host, ';') !== false) {
>             $response = new Zend_Controller_Response_Http();
>             $response->setHttpResponseCode(400)->sendHeaders();
>             exit();
>         }
> 
>         return $host;

diff -r magento-1920/app/design/frontend/base/default/template/page/js/cookie.phtml magento-1921/app/design/frontend/base/default/template/page/js/cookie.phtml
37,38c37,38
< Mage.Cookies.path     = '<?php echo $this->getPath()?>';
< Mage.Cookies.domain   = '<?php echo $this->getDomain()?>';
---
> Mage.Cookies.path     = '<?php echo Mage::helper('core')->jsQuoteEscape($this->getPath()) ?>';
> Mage.Cookies.domain   = '<?php echo Mage::helper('core')->jsQuoteEscape($this->getDomain()) ?>';

5
मुझे लगता है कि लापता फाइलें सबसे महत्वपूर्ण "क्रॉस-साइट स्क्रिप्टिंग का उपयोग करते हुए Unvalidated Headers" समस्या को ठीक करती हैं। उपहार रजिस्ट्री सीरच में "XSS गिफ्ट रजिस्ट्री" समस्या गलती से सीई संस्करण के लिए पैच प्रलेखन में जोड़ दी गई है, क्योंकि उपहार रजिस्ट्री एक ईई-केवल सुविधा है।
Aad Mathijssen

1
हां, मुझे लगा कि मेरे सीई इंस्टॉलेशन में गुम बदलावों को लागू करने के लिए यह काफी महत्वपूर्ण था और मैगेंटो को इसका पता लगाने के लिए इंतजार नहीं करना चाहिए और जब वे इसके पास पहुंचते हैं तो हमें V2 पैच भेजना चाहिए। कुकी घटकों में उपयोग किए जाने वाले कैशे विषाक्तता और अनफ़िल्टर्ड उपयोगकर्ता इनपुट एक biggie की तरह लगता है।
फियास्को लैब्स

1
Magento ने दस्तावेज़ को अपडेट किया है: "क्रॉस-साइट स्क्रिप्टिंग अनवेलिड हेडर्स का उपयोग करते हुए" और "XSS इन गिफ्ट रजिस्ट्री सर्च" दोनों मुद्दों को "Magento Enterprise Edition Only" के रूप में चिह्नित किया गया है। लेकिन इस बीच, मैगेंटो सीई 1.9.2.1 में "क्रॉस-साइट स्क्रिप्टिंग अनवेलिड हेडर्स का उपयोग करते हुए" मुद्दा है, या कम से कम इसका एक हिस्सा है।
Aad Mathijssen

1
हे, CE में अल्प-परिवर्तन क्रिया। सीई के पास विशलिस्ट नहीं है, लेकिन निश्चित रूप से पैच के माध्यम से दूर जाने के लिए "Unvalidated Headers" मुद्दे की आवश्यकता है, न कि प्रलेखन परिवर्तन। ओह, ठीक है ... जो हम उम्मीद करने आए हैं उससे अधिक।
फियास्को लैब्स

3
रिकॉर्ड के लिए - हमारे परीक्षणों के अनुसार - क्रॉस-साइट स्क्रिप्टिंग का उपयोग अनलिमिटेड हेडर्स का उपयोग करके सीई भेद्यता नहीं है। यदि कोई POC प्रदान कर सकता है कि CE भेद्यता है, तो कृपया magento.com/security पर जाएं और रिपोर्ट करें।
बारात

9

मैंने विस्तार से परिवर्तनों पर एक नज़र डाली थी और कौन से दुष्प्रभाव होने की उम्मीद है।

EE 1.13.1.0 के संस्करण में निम्नलिखित फाइलें बदल गईं:

2015-08-05 07:14:25 UTC | SUPEE-6482_EE_1.13.1.0 | EE_1.13.1.0 | v2 | 7e38036f94f250514fcc11d066a43c9bdb6a3723 | Tue Jul 28 14:29:35 2015 +0300 | v1.13.1.0..HEAD
patching file app/code/core/Enterprise/PageCache/Model/Processor.php
patching file app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
patching file app/code/core/Mage/Catalog/Model/Product/Api/V2.php
patching file app/code/core/Mage/Core/Controller/Request/Http.php
Hunk #1 succeeded at 294 (offset 7 lines).
patching file app/design/frontend/base/default/template/page/js/cookie.phtml
patching file app/design/frontend/enterprise/default/template/giftregistry/search/form.phtml
  • में Adapter/Soap.php, urlencoding को प्रमाणीकरण डेटा में जोड़ा जाता है। इसका कोई नकारात्मक दुष्प्रभाव नहीं होना चाहिए। यह सुनिश्चित करता है, कि परिणाम wsdlUrlमान्य है। इस परिवर्तन के बिना, कोई भी URL को प्रभावित कर सकता है
  • Product/Api/V2.php: यहाँ कुछ जाँचें दी गई हैं कि यदि पास किया गया डेटा एक ऑब्जेक्ट है। यह सामान्य परिस्थितियों में नहीं होना चाहिए।
  • में Request/Http.phpऔर PageCache/Model/Processor.phpएक जांच जब HTTP होस्ट रही जोड़ा जाता है। यह उल्लिखित हेडर इंजेक्शन को कवर करता है। अगर वहाँ एक है की जांच ही लागू होता है ;या ,HTTP मेजबान में है, इसलिए इस वास्तविक जीवन प्रणालियों में हितैषी होना चाहिए / कोई नकारात्मक पक्ष प्रभाव है।
  • में cookie.phtmlएस्केपिंग जोड़ा जाता है। यदि आप उस फ़ाइल को अधिलेखित करते हैं, तो इसे आपके विषय में अग्रेषित किया जाना चाहिए
  • के लिए समान है giftregistry/search/form.phtml

यह योग करने के लिए, मैं कहूंगा कि पैच लगाने से कोई नकारात्मक दुष्प्रभाव नहीं होना चाहिए। अपनी .phtmlफ़ाइलों में परिवर्तनों को अग्रेषित करना याद रखें ।


1
पुष्टिकरण के लिए धन्यवाद, हेडर इंजेक्शन और कुकी घटक से बचना CE के लिए आसान है।
फिआस्को लैब्स

1
पोर्ट करने की आवश्यकता नहीं है। डाउनलोड क्षेत्र में सीई के लिए पैच संस्करण भी हैं।
एलेक्स

5

अजीब बात यह है कि ईई पैच में निम्नलिखित फाइलों पर संशोधन हैं:

app/code/core/Mage/Core/Controller/Request/Http.php
app/design/frontend/base/default/template/page/js/cookie.phtml

जब CE एक समान संस्करण के लिए नहीं करता है।

मुझे लगता है कि उस SUPEE-6482सीई संस्करण पर कुछ गायब है , और एक वी 2 जल्द ही जारी किया जा सकता है।


मैने भी वहीं सोचा!
रोब ३०००

2
जी हां, आपने सही देखा। यही कारण है कि मुझे 1.9.2.0 और 1.9.2.1 की स्थापना अभिलेखागार में अंतर करके मिली है। मेरे पास पूरी तरह से पैच किए गए सीई इंस्टॉलेशन हैं इस वजह से, मैं आगे बढ़ गया और मैन्युअल रूप से उल्लिखित दो फाइलों को पैच किया। Js कुकी फ़ाइल को आपके कस्टम टेम्प्लेट में पैच किया जाना चाहिए, साथ ही अगर आपके पास उसमें वह फ़ाइल है। उन्होंने शायद अनुरोध नियंत्रक को एक पैच के रूप में छोड़ दिया, क्योंकि इसके लिए पहले से पैच की गई फ़ाइल को पैच करना होगा और हमें कोई सीई प्यार नहीं मिलेगा।
फियास्को लैब्स

1
उत्पादन के माहौल पर तैनात होने के कुछ दिन पहले "प्रतीक्षा करें" और (लाइव होने से पहले बेहतर जांच करने के लिए इन दिनों का उपयोग करने के लिए)। आज, Magento Backend में एक और अपडेट अधिसूचना (4 सुरक्षा भेद्यता के बजाय केवल 2 के बारे में नोटिस)। वैसे भी, मैं लाइव होने के लिए सोमवार तक इंतजार करूंगा।
DarkCowboy

1
Magento ने अपना रिलीज़ नोट अपडेट किया है: merch.docs.magento.com/ce/user_guide/… कुछ पैच केवल प्रभावी रूप से EE हैं। लेकिन मुझे अभी भी पता नहीं है कि वे 2 फाइलें, कोर आधारित, सीई पैच में चिंतित नहीं हैं, क्योंकि वे सीई 1.9.2.1 में एकीकृत हैं ...
एंटोनी कोसुबा

4

संस्करण सीई और ईई में नीचे के मुद्दे के लिए फिक्स के लिए मैगेंटो रिलीज पैच SUPEE-6482

Magento के सामुदायिक संस्करण के लिए:

  • Magento SOAP API में ऑटोलॉइड फ़ाइल इंक्लूजन
  • डब्लूएसडीएल फ़ाइल में एसएसआरएफ भेद्यता

Magento एंटरप्राइज़ संस्करण के लिए

  • Magento SOAP API में ऑटोलॉइड फ़ाइल इंक्लूजन
  • डब्लूएसडीएल फ़ाइल में एसएसआरएफ भेद्यता
  • क्रॉस-साइट स्क्रिप्टिंग का उपयोग अनवेलिड हेडर्स के साथ

उपहार रजिस्ट्री खोज में XSS

कक्षा में परिवर्तन करना

  • Mage_Api_Model_Server_Adapter_Soap

  • Mage_Catalog_Model_Product_Api_V2

Mage_Api_Model_Server_Adapter_Soap पर परिवर्तन

             : $urlModel->getUrl('*/*/*');

         if ( $withAuth ) {
-            $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false);
-            $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false);
-            $scheme = $this->getController()->getRequest()->getScheme();
+            $phpAuthUser = rawurlencode($this->getController()->getRequest()->getServer('PHP_AUTH_USER', false));
+            $phpAuthPw = rawurlencode($this->getController()->getRequest()->getServer('PHP_AUTH_PW', false));
+            $scheme = rawurlencode($this->getController()->getRequest()->getScheme());

             if ($phpAuthUser && $phpAuthPw) {
                 $wsdlUrl = sprintf("%s://%s:%s@%s", $scheme, $phpAuthUser, $phpAuthPw,

Mage_Catalog_Model_Product_Api_V2 पर परिवर्तन करें

     public function create($type, $set, $sku, $productData, $store = null)
     {
-        if (!$type || !$set || !$sku) {
+        if (!$type || !$set || !$sku || !is_object($productData)) {
             $this->_fault('data_invalid');
         }

@@ -243,6 +243,9 @@ class Mage_Catalog_Model_Product_Api_V2 extends Mage_Catalog_Model_Product_Api
      */
     protected function _prepareDataForSave ($product, $productData)
     {
+        if (!is_object($productData)) {
+            $this->_fault('data_invalid');
+        }
         if (property_exists($productData, 'website_ids') && is_array($productData->website_ids)) {
             $product->setWebsiteIds($productData->website_ids);
         }

अधिक देखें: http://www.amitbera.com/magento-security-patch-supee-6482/


1
हाय अमित बेरा (@ अमित-बेरा), मैं Magento 1.9.2.1 के एक अलग ज़िप के रूप में पैच SUPEE-6482 कहां से प्राप्त कर सकता हूं?
अन्धी इरावन

2
@ Andhi, Magento 1.9.2.1 पहले से ही है, यह कोड संरचना पर पैच कोड शामिल किया गया है तो तुम Supee-6482 लागू करने के लिए की जरूरत नहीं है
अमित बेरा

1
@ अमित बेरा, अगर अभी भी मैगेंटो 1.9.1.0 का उपयोग कर रहे हैं, तो 1.9.2.1 में अपग्रेड करें या नहीं? मेरा मतलब है, केवल पैच SUPEE-6428 स्थापित कर सकता है?
एंडी इरावन

3
ध्यान दें कि अनवैलिड हेडर पैच CE पैच में नहीं है, निम्नलिखित फाइलें => को छुआ नहीं गया है app/code/core/Mage/Core/Controller/Request/Http.phpऔर app/design/frontend/base/default/template/page/js/cookie.phtmlगायब हैं। शायद हमें पढ़ने के लिए सबसे ऊपर सवाल बदलना चाहिए: Magento सुरक्षा पैच SUPEE-6482, क्या नहीं पैच किया गया है?
फियास्को लैब्स

1
@ अमित बेरा, क्षमा करें, Magento द्वारा जोड़ा गया है Aug 4, 2015 को magentocommerce.com/download में : डाउनलोड -> Magento सामुदायिक संस्करण पैच -> SUPEE-6482
एंडी

4

कृपया इस रिलीज़ पर Magento के दस्तावेज़ पढ़ें, इसका उत्तर है: http://merch.docs.magento.com/ce/user_guide/Magento_Community_Edition_User_Guide.html#magento-release-notes-ce-1.9.2.1.html


5
जबकि सूचनात्मक संबंधित खंड को इस धागे में कॉपी करने पर विचार करते हैं। लिंक-ओनली-उत्तर सबसे अच्छा उत्तर नहीं है क्योंकि लिंक गायब होने की आदत है (विशेषकर
मैगेंटो

1
@philwinkle - हे, हाँ हम सब वहाँ रहे हैं। MagEbayVaporation (x_x) लिंक प्रचुर मात्रा में।
Fiasco Labs

2

अन्य हालिया पैच की तरह, इस पैच में बहुत अधिक कॉपी, लाइसेंस और टाइपो फिक्स हैं। मैंने जो कुछ देखा है, उसमें से कुछ टाइपो का भी परिचय दिया।

वास्तविक सुरक्षा पैच भाग 4 अलग-अलग संभावित हमलों के लिए उपयोगकर्ता इनपुट सैनिटाइजेशन को संबोधित करता है।

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