Bản vá bảo mật SUPEE-10266 - Các vấn đề có thể xảy ra?


36

Một bản vá bảo mật mới đã được phát hành cho Magento 1, giải quyết 13 vấn đề APPSEC

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

Những vấn đề phổ biến nào bạn phải đề phòng khi áp dụng bản vá này?

SUPEE-10266, Magento Commerce 1.14.3.6 và Mã nguồn mở 1.9.3.6 chứa nhiều cải tiến bảo mật giúp đóng giả mạo yêu cầu chéo trang (CSRF), rò rỉ dữ liệu trái phép và lỗ hổng thực thi mã từ xa của người dùng Admin xác thực. Những bản phát hành này cũng bao gồm các bản sửa lỗi cho các vấn đề với tải lại hình ảnh và thanh toán bằng cách sử dụng kiểm tra một bước.


Đối mặt với vấn đề khi áp dụng vào 1.9.3.2 - magento.stackexchange.com/questions/193451/ mẹo
Shrenik

Câu trả lời:


13

Một số thông tin quan trọng chia sẻ với đây. Hầu hết các tệp từ phụ trợ Magento. Danh sách tập tin:

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

Điều quan trọng cần kiểm tra ba tập tin này.

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 / controls / CartControll.php kiểm tra điều kiện bổ sung id khách hàng :

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 đã thêm phương thức bổ sung addFilterByCustomerId trong bộ sưu tập.

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

ứng dụng / mã / lõi / Mage / Core / Model / File / Trình xác thực / Image.php

nếu 'general / reprocess_images / active' false thì bỏ qua xử lý lại hình ảnh. LƯU Ý: Nếu bạn tắt xử lý lại hình ảnh, thì quá trình tải lên hình ảnh của bạn có thể gây ra rủi ro bảo mật

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

Hy vọng nó sẽ hữu ích. tôi nghĩ


Bạn có thể vui lòng chỉ định cách exacly nên kiểm tra các vấn đề có thể xảy ra với CartControll.php và Collection.php không. Trường hợp chính xác để tìm kiếm các trục trặc có thể trên trang web?
Biểu tượng

Tôi đã cập nhật bản vá bảo mật 3 trang web, cả ba trang web đều ghi đè hai tệp này. Kiểm tra cẩn thận và cập nhật hai tập tin này. Không có Gitches xảy ra trong cả 3 trang web
Rama Chandran M

10

EE 1.14.2.4

Typo trên dòng 726 của bản vá: autocomplete="new-pawwsord" ( app/design/adminhtml/default/default/template/backup/dialogs.phtml)

Các bản vá dường như bỏ lỡ 2 tập tin frontend:

Đã vá:

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

Không được vá:

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


Cũng đừng quên kiểm tra các phần ghi đè cục bộ ... Tôi đã phải tự vá một phần ghi đè mã hóa cục bộ của app\design\adminhtml\default\default\template\sales\order\view\info.phtml


Xem quasiobject câu trả lời 's cho một vấn đề thanh toán onepage. Vé hỗ trợ doanh nghiệp được tạo, đang chờ phản hồi từ Magento. Nếu bạn không muốn đợi một bản vá được cập nhật, một sửa chữa tiềm năng là sửa đổi quy tắc "khác" app\design\frontend\enterprise\default\template\giftcardaccount\onepage\payment\scripts.phtmlđể bao gồm phần tử form_key như vậy:
if (($('p_method_' + methodName) && $('p_method_' + methodName).checked) || elements[i].name == 'form_key') { ...


CE 1.9.2.4

Typo trên dòng 694 của bản vá: autocomplete="new-pawwsord" ( app/design/adminhtml/default/default/template/backup/dialogs.phtml)

Tiện ích mở rộng TrueOrderEdit cần được vá ... thay đổi echo $_groupNamethành echo $this->escapeHtml($_groupName)trong các tệp sau:

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


Cuối cùng, tệp mẫu lõi này có lẽ cũng phải được vá bằng bản cập nhật $ _groupName tương tự:

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


Tất cả các phiên bản 1.X

Nếu bạn đã xóa /downloaderthư mục (hoặc /downloader/template) khỏi cơ sở mã của mình, thì bạn có thể phải chỉnh sửa thủ công tệp vá .sh và xóa phần cuối cùng, bắt đầu bằngdiff --git downloader/template/login.phtml downloader/template/login.phtml

Liên quan đến lỗi Khóa bí mật không hợp lệ , vui lòng xem câu trả lời của tôi tại đây: Magento 1.9 Khóa bí mật không hợp lệ. Vui lòng làm mới trang


Tôi cũng tìm thấy lỗi đánh máy cho bản vá 1.7.0.2. autocomplete = "new-pawwsord". Liệu nó trong trường hợp nào ảnh hưởng đến hoạt động mã? Nếu vậy, có thể phiên bản 2 của bản vá trên đường?
Biểu tượng

Về cơ bản, lỗi đánh máy nằm trong mã chịu trách nhiệm về thủ thuật FireFox. "Đây là một trường ẩn giả để lừa firefox tự động điền mật khẩu" ... có vẻ như không có gì quan trọng cả.
Biểu tượng

@kmdsax Tôi có một bản vá từ bộ phận hỗ trợ để khắc phục sự cố. Cập nhật câu trả lời của tôi với các chi tiết.
quasiobject

bạn có thể vui lòng giúp tôi giải quyết lỗi của tôi magento.stackexchange.com/q/204446/57334
zus

9

Chúng tôi tại Magehost.pro đã tìm thấy sự cố trong bản vá cho Magento 1.9.1.1, tệp váPATCH_SUPEE-10266_CE_1.9.1.1_v1-2017-09-15-04-59-56.sh

Lỗi:

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

Tôi đã sửa nó bằng cách thay thế các dòng 454-472 bằng 454-471 từ PATCH_SUPEE-10266_CE_1.9.1.0_v1-2017-09-13-06-34-33.sh

Mã cũ, dòng 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.'));

Mã mới, dòng 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) {

Bạn đã xem xét các phiên bản khác? Nếu có, vấn đề tương tự hiện nay?
Biểu tượng

1
@Icon Chúng tôi đã thử nghiệm 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. Tất cả các phiên bản đã cài đặt tất cả các bản vá trước đó. Người duy nhất có lỗi vá là ce-1.9.1.1.
Jeroen Vermeulen - Magehost

6

Chỉ có 1 khóa hình thức đã được thêm vào trong bản vá này.

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

Vì vậy, nếu bạn gặp khó khăn trong việc xóa một widget khỏi bảng quản trị, hãy đảm bảo url xóa của bạn đang được tạo bởi khối và bạn không có phần ghi đè của khối này.


Làm thế nào tôi có thể giải quyết magento.stackexchange.com/q/204446/57334 này ?
zus

5

Không thể thanh toán trên EE 1.11+

Trong app/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtmlmã xác thực khóa mẫu đã bị xóa và nó phá vỡ toàn bộ thanh toán, thông tin thêm ở đây: https://magento.stackexchange.com/a/193442/2380

Giải pháp thay thế ngay bây giờ (dưới dạng V2 cho EE 1.11+ sẽ được phát hành để giải quyết vấn đề đó): khôi phục tệp mẫu cho cả hai enterprise/defaultrwd/entreprisechủ đề.

Sự khác nhau giữa bản vá và phiên bản

EDIT: 1.9.3.6 đã được phát hành do đó thông tin này không còn phù hợp

Một trong những vấn đề chính đã được nêu ra bây giờ là 1.9.3.5 bị thiếu 3 bản vá bảo mật từ bản vá. Vì vậy, tôi thực sự khuyên bạn chỉ nên vá và không cập nhật lên 1.9.3.5.


Bạn có thêm thông tin nào về điều này không, ví dụ như một tập tin chưa được vá trong 1.9.3.5?
Luke Rodgers

Điều này vẫn đang tiếp diễn cho CE / Nguồn mở? Đối với EE / Commerce không có tải xuống 1.14.3.5, chỉ có 1.14.3.6.
7ochem

Trên trang tải xuống CE / Nguồn mở cũng chỉ có 1.9.3.6 (kể từ ngày 14 tháng 9) và không còn 1.9.3.5 nữa
7ochem

4
1.9.3.6 đã được phát hành ngày hôm qua, thông tin này không còn phù hợp.
Ryan Hoerr

5

Vẫn đang cố gắng xác định xem điều này có duy nhất cho cửa hàng của chúng tôi hay không, do các mẫu tùy chỉnh. Tuy nhiên, nó bị hỏng với bản vá được áp dụng và không bị hỏng khi chúng tôi hoàn nguyên. Tôi muốn đăng trong trường hợp những người khác có thể báo cáo tương tự.

Trong EE 1.14.2.0, chúng tôi không thể vượt qua bước Thanh toán thông tin thanh toán với bản vá được áp dụng. Chúng tôi hiện đang lên tới SUPEE-9767 v2 trước khi áp dụng bản vá mới.

Vấn đề của chúng tôi dường như xuất phát từ việc họ loại bỏ || elements[i].name == 'form_key'khỏi:

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

Nó được gỡ bỏ khỏi enablePaymentMethodsvòng lặp. Điều đó dường như để tắt đầu vào form_key ẩn của biểu mẫu và do đó không được chuyển đến bộ điều khiển khi được gửi.

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

Sau đó, $this->_validateFormKey()thất bại và bộ điều khiển trả về không có gì.


Cập nhật 1 (2017-09-18) : Tôi đã gửi một vé cho bộ phận hỗ trợ Magento vào thứ Sáu và được thông báo rằng "[chưa] được báo cáo bởi bất kỳ thương gia nào". Thay vì gửi các bản sao lưu, tôi đã cố gắng sao chép trên bản cài đặt sạch 1.14.2.4 và 1.14.3.4 với các bản vá được áp dụng. Tôi đã có thể sao chép và trả lời vé. Đang chờ phản hồi mới.

Lưu ý: Hệ thống> Cấu hình> Quản trị viên> Bảo mật> Bật Xác thực khóa biểu mẫu khi thanh toán cần phải là "Có". Nếu "Không", bạn sẽ không thấy vấn đề.


Cập nhật 2 (2017-09-18) : Thông báo Tôi không thể sao chép sự cố với 1.14.3.6, nhưng khi tôi kiểm tra tệp mẫu ở trên, || elements[i].name == 'form_key'vẫn còn đó. Có vẻ như các bản vá không nên loại bỏ nó. Gửi thông tin này cho Magento hỗ trợ, quá.


Cập nhật 3 (2017-09-20): Tôi vừa có một bản vá để khắc phục sự cố cho 1.14.0.0 H11,14.3.4 , chỉ cần khôi phục form_keydòng vào mẫu. Yêu cầu hỗ trợ cho SUPEE-10348.


Vấn đề tương tự ở đây vào ngày 1.14.2.4
kmdsax

Cảm ơn @kmdsax. Tôi cũng đã gửi một vé và chờ đợi để nhận được xác nhận từ bộ phận hỗ trợ.
quasiobject

Bạn đã thử sao chép cùng một lỗi trên phiên bản 1.9.2.4 CE chưa?
Biểu tượng

1
@ Tôi không có. Tôi làm việc cho một thương gia duy nhất và chúng tôi là EE. Tuy nhiên, tôi không nghĩ nó sẽ bị ảnh hưởng vì đây là khối kịch bản thẻ quà tặng EE. Điều đó không nên tồn tại trong CE.
quasiobject

4

Khi bạn truy cập Magento Connect và sau khi bạn nhấp vào "Quay lại quản trị viên" ở góc trên cùng bên phải của trang. Khi quay trở lại bảng điều khiển quản trị, bạn nhận được thông báo lỗi

thông báo lỗi màu đỏ : "Khóa bí mật không hợp lệ. Vui lòng làm mới trang."

Khi bạn làm mới trang, nó sẽ biến mất.


Cập nhật: ngày 15 tháng 9 năm 2017

Nếu bạn đăng nhập vào quản trị viên Magento, hãy nói Bảng điều khiển. Nếu không đăng xuất khỏi bảng điều khiển Bảng điều khiển, bạn đi và mở một cửa sổ trình duyệt khác trong cùng một trình duyệt và truy cập example.com/admin, nó sẽ tự động đăng nhập và hiển thị chính xác cùng một thông báo

thông báo lỗi màu đỏ : "Khóa bí mật không hợp lệ. Vui lòng làm mới trang."

Cho đến nay nó là vấn đề duy nhất tôi đã tìm thấy. Tôi thậm chí không chắc chắn nếu đó là một vấn đề vững chắc vì tin nhắn sẽ biến mất sau khi làm mới.


Có lẽ điều này xuất phát từ việc đóng Magento Connect: magento.com/blog/magento-news/ Kẻ
Kevin Krieger

1
@KalvinKlien Tôi cũng đang ở 1.7.0.2. Tôi thấy thông báo này mỗi khi tôi qua lại giữa quản trị viên và Magneto Connect (/ trình tải xuống). Tôi chỉ đang cố gắng tìm hiểu xem những người khác cũng nhìn thấy nó .. Có vẻ như không phải là một vấn đề lớn.
Biểu tượng

3
Tôi cũng thấy điều này trong 1.9.2.1. Ai đó đã nộp báo cáo lỗi trong trình theo dõi lỗi Magento .
Michael Margarel

1
Đó là một lỗi trong Mage_Adminhtml_Controll_Action :: preDispatch (): if ($_keyErrorMsg != '') { Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };nên làif (!$_isValidFormKey){ Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };
Laura

1
hmmmm, đây là một giải pháp một phần cho đến nay. Thỉnh thoảng tôi vẫn thấy lỗi, không chắc có bộ điều khiển nào khác có vấn đề này không
Kalvin Klien

4

Tôi đã hỏi Hỗ trợ Magento về vấn đề sau

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

Họ đã trả lời tôi sáng nay và phát hành một bản vá mới PATCH_SUPEE-10348 .

Magento chỉ giải quyết vấn đề bằng cách hoàn nguyên trong tệp này.

Chỉ mục: ứng dụng / thiết kế / frontend / doanh nghiệp / mặc định / mẫu / giftcardaccount / onepage / Payment / scripts.phtml
================================================== =================
--- ứng dụng / thiết kế / frontend / doanh nghiệp / mặc định / mẫu / giftcardaccount / onepage / Payment / scripts.phtml
+++ ứng dụng / thiết kế / frontend / doanh nghiệp / mặc định / mẫu / giftcardaccount / onepage / Payment / scripts.phtml
@@ -35,6 +35,7 @@
             if (yếu tố [i] .name == 'thanh toán [phương thức]'
                 | | các phần tử [i] .name == 'thanh toán [use_customer_balance]'
                 | | các yếu tố [i] .name == 'thanh toán [use_Vward_point]'
+ || các phần tử [i] .name == 'form_key'
             ) {
                 methodName = phần tử [i] .value;
                 if ((miễn phí && methodName == 'miễn phí') || (! free && methodName! = 'free')) {

1
Có thể xác nhận rằng bản vá này có sẵn trong cổng đối tác.
Luke Rodgers

Cảm ơn vì thông tin. Tôi đã quên cung cấp thông tin đó
cghisi

3

Tôi gặp phải một vấn đề với các mẫu email, CSS và modman tùy chỉnh. Nếu bạn có một chủ đề dựa trên rwd/default, có một tùy chỉnh skin/frontend/package/theme/css/email-inline.cssvà các tệp da của bạn được bao gồm thông qua modman thông qua một liên kết tượng trưng, ​​CSS sẽ không được thêm vào mẫu thư sau khi áp dụng SUPEE-10266. Vấn đề là trong Mage_Core_Model_Email_Template_Abstract::_getCssFileContent, một số kiểm tra đã được giới thiệu.:

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

Tôi đã giải quyết nó bằng một bản hack bẩn với phần app/code/local/Mage/Core/Model/Email/Template/Abstract.phpghi đè trong thời điểm hiện tại. Tôi đã phải làm yếu việc kiểm tra, để có thể tải tệp CSS từ thư mục 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);
}

Nó sẽ không kiểm tra xem đường dẫn có bao gồm thư mục skin hoàn chỉnh nữa hay không, nhưng sẽ chỉ kiểm tra xem đường dẫn có chứa chuỗi /skinhay không và nếu nó không bao gồm .., điều đó sẽ ngăn chặn các cuộc tấn công ngang qua thư mục.


1
Xóa câu trả lời của tôi là của bạn là đầy đủ hơn. Bản hack tôi đã sử dụng là để kiểm tra if (strpos($filename, '..') === false) { $positionSkinDirectory = 1; }hàng sau khi $positionSkinDirectoryđược thiết lập ban đầu. Điều này sẽ giúp tránh truyền tải thư mục.
Peter O'Callaghan

Tôi muốn lưu ý rằng sự yếu đi trong trường hợp này có nghĩa là khiến nó dễ bị tổn thương trở lại và việc sử dụng giải pháp này là một rủi ro bảo mật trực tiếp
Flyingmana

@ PeterO'Callaghan ý kiến ​​hay! Tôi chỉ cần thêm séc của bạn vào mã câu trả lời của tôi.
Simon

@Fellingmana điều này sẽ làm giảm đáng kể rủi ro.
Simon

2

Dưới đây là danh sách đầy đủ các bản vá bị ảnh hưởng bởi autocomplete="new-pawwsord"lỗi đánh máy:

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

Trên Magento 1.8.1, tôi gặp vấn đề với các tệp sau:

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

Tôi đã kết thúc với việc tải xuống phiên bản Magento mới nhất KHÔNG chứa bản vá. Trong trường hợp này Magento 1.9.3.4 .

Việc thay thế các tệp 'bị hỏng' bằng tệp từ bản tải xuống đã khắc phục sự cố. Tôi đã có thể áp dụng các bản vá thành công.

Nhưng hãy cẩn thận: Tôi đề nghị hoàn nguyên 3 tệp sau khi vá lại và chỉnh sửa các tệp theo cách thủ công.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.