SecurityPatch 9652: Các sự cố có thể xảy ra sau khi áp dụng SUPEE-9652


16

Magento đã phát hành bản vá bảo mật của mình SUPEE-9652, cho Magento 1.x CE và EE

Tôi chỉ muốn biết những vấn đề có thể xảy ra sau khi áp dụng bản vá bảo mật này và những thay đổi mới trong bản vá bảo mật này là gì?

Câu trả lời:


25

Đây là một bản vá siêu nhỏ, đây là khác biệt:

diff --git lib/Zend/Mail/Transport/Sendmail.php lib/Zend/Mail/Transport/Sendmail.php
index b24026b..9323f58 100644
--- lib/Zend/Mail/Transport/Sendmail.php
+++ lib/Zend/Mail/Transport/Sendmail.php
@@ -119,14 +119,19 @@ class Zend_Mail_Transport_Sendmail extends Zend_Mail_Transport_Abstract
                 );
             }

-            set_error_handler(array($this, '_handleMailErrors'));
-            $result = mail(
-                $this->recipients,
-                $this->_mail->getSubject(),
-                $this->body,
-                $this->header,
-                $this->parameters);
-            restore_error_handler();
+            // Sanitize the From header
+            if (!Zend_Validate::is(str_replace(' ', '', $this->parameters), 'EmailAddress')) {
+                throw new Zend_Mail_Transport_Exception('Potential code injection in From header');
+            } else {
+                set_error_handler(array($this, '_handleMailErrors'));
+                $result = mail(
+                    $this->recipients,
+                    $this->_mail->getSubject(),
+                    $this->body,
+                    $this->header,
+                    $this->parameters);
+                restore_error_handler();
+            }
         }

         if ($this->_errstr !== null || !$result) {

Tuy nhiên, Peter O'Callaghan (một và duy nhất) dường như đã tìm thấy một lỗi. Anh ấy nhẹ nhàng chia sẻ chi tiết với tôi và nói rằng tôi có thể chia sẻ nó với bạn ở đây vì vậy đây là :

Tốt nhất tôi có thể nói giá trị của $this->paramsý chí sẽ luôn được thêm tiền tố -fvào thời điểm xác thực đã được thêm vào (nó được chuyển vào hàm tạo tại điểm đường dẫn trả lại được thêm vào). Do đó, tại thời điểm nó được chuyển sang xác thực, nếu tôi đã định cấu hình e-mail của mình contact@me.com, giá trị thực sự được xác thực là -fcontact@me.com, có vẻ như đó là một sự thay đổi so với ý định rằng điều này xảy ra để xác thực như một địa chỉ email. Nếu địa chỉ e-mail của tôi là "example"@example.commặc dù, điều này sẽ trở thành -f"example"@example.com, sẽ không xác nhận. Ngẫu nhiên str_replacedường như hoàn toàn dư thừa trong vấn đề này do AFAIK chỉ có thể sử dụng khoảng trắng cùng với dấu ngoặc kép và e-mail có dấu ngoặc kép sẽ không hợp lệ với-ftiếp đầu ngữ. Trong thực tế, nếu không có tiền tố ở đó, thì str numplace và xác thực sẽ không hữu ích bởi vì "foo bar"@example.com"foobar"@example.comcả hai đều hợp lệ, vì cái sau không bao giờ được gán cho bất cứ thứ gì sau khi thay thế, e-mail vẫn sẽ được gửi bằng cách sử dụng trước giá trị, có lẽ vẫn còn dễ bị tổn thương.

Hai điều khác cần ghi nhớ:

Lưu ý bên

Bản phát hành mới tương ứng của Magento CE 1.9.3.2 cũng bao gồm bản cập nhật năm nhận xét bản quyền (từ năm 2016 đến 2017), vì vậy hầu như mọi tệp của Magento đã được cập nhật và khác biệt trông rất lớn


2
"Miễn là bạn đã tắt cài đặt email", những cài đặt này nằm trong bảng điều khiển quản trị viên? Chỉ để cứu tôi lặn qua Sys-> Cấu hình mà không có cà phê của tôi :)
Luke Rodgers

2
@LukeRodgers tham khảo bài đăng trên blog này để biết chi tiết: magento.com/security/news/iêu
Raphael tại Digital Pianism 8/2/2017

1
"Cập nhật năm nhận xét bản quyền (từ năm 2016 đến 2017) vì vậy hầu hết mọi tệp của Magento đã được cập nhật" đó là sự thật @Raphael tại Digital Pianism
Amit Bera

1
@Icon tốt nếu bạn kiểm tra tên tệp vá đã là v2 ^^ vì vậy có thể là v3 chưa có ETA
Raphael tại Digital Pianism 8/2/2017

1
Đối với hồ sơ, rất khó có thể ảnh hưởng đến bất kỳ việc sử dụng hợp pháp nào và AFAIK (không thấy tải trọng đã gửi), nó sẽ ngăn chặn việc khai thác trong mọi trường hợp (mặc dù lý do thực tế cho việc này có vẻ như vô tình hoặc là một lựa chọn cực kỳ kỳ quặc). Chỉ là nó chặn tất cả các email trong đó phần địa phương được trích dẫn, tức là "example"@example.comđịa chỉ mẫu, bất kể chúng có nguy hiểm về mặt kỹ thuật hay không. Tôi sẽ khá ngạc nhiên nếu có bất kỳ cửa hàng hợp pháp nào sử dụng loại e-mail này, nhưng muốn có thông tin trong trường hợp.
Peter O'Callaghan

8

Mẹo nhỏ để nâng cấp; sau khi sao chép phiên bản mới qua cài đặt hiện tại của bạn, hãy chạy git diff -w --stat=400 | grep -v " 2 +”để nhanh chóng thấy các khác biệt có chứa nhiều thay đổi hơn là chỉ thay đổi thông báo bản quyền.


4

Bản vá bảo mật 9652 chỉ ảnh hưởng đến tệp sau:

/lib/Zend/Mail/Transport/Sendmail.php

1

Đối với những người như tôi, những người tự hỏi phải làm gì khi không có quyền truy cập SSH: chỉnh sửa tệp /lib/Zend/Mail/Transport/Sendmail.php

từ dòng 122 trở đi, thay thế dòng này:

        set_error_handler(array($this, '_handleMailErrors'));
        $result = mail(
            $this->recipients,
            $this->_mail->getSubject(),
            $this->body,
            $this->header,
            $this->parameters);
        restore_error_handler();

Với cái này:

        // Sanitize the From header
        if (!Zend_Validate::is(str_replace(' ', '', $this->parameters), 'EmailAddress')) {
            throw new Zend_Mail_Transport_Exception('Potential code injection in From header');
        } else {
            set_error_handler(array($this, '_handleMailErrors'));
            $result = mail(
                $this->recipients,
                $this->_mail->getSubject(),
                $this->body,
                $this->header,
                $this->parameters);
            restore_error_handler();
        }

4
hm, cho những người không có quyền truy cập SSH. có lẽ bạn nên vá cục bộ và tải lên tập tin đã vá. ;)
infabo

Để được hướng dẫn đầy đủ về việc vá mà không cần truy cập SSH, hãy xem câu trả lời này tại đây: magento.stackexchange.com/a/63936/3326
7ochem
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.