마 젠토 보안 패치 SUPEE-6482, 패치 란 무엇입니까?


28

오늘 04.08.2015에 새로운 보안 패치가 릴리스되었고 일부 동료와 나는 패치를 확인하고 있으며, 무엇이 바뀌 었는지에 대해 토론하는 것이 좋으며, 패치되지 않은 상점에 영향을 줄 수있는 가능한 공격이 무엇인지 아는 사람이 있습니까? 일어날 수있는 최악의 상황은 무엇입니까?

업데이트 : 방금 오늘 보낸 이메일을 추가하여 게시물을 작성하려고했습니다. 마 젠토 이메일 업데이트


1
요즘에는 마무리가있을 것입니다. 그러나 이미 확인한 후 토론을하려면 계속 진행하십시오! 당신의 생각과 결과를 공유하십시오!
mam08ixo

2
패치 자체는 아닙니다. 전체 1.9.2.1에 대한 설치는 단지 주소 4 보안 문제로 보이는이 시점에서, 그 변화를 검사 할 것
큰 실수 랩

2
전체 업그레이드 또는 백 포트 1.9.2.0 => CMS 블록 및 위젯 캐싱 magento-1921/app/code/core/Mage/Cms/Block/Block.phpmagento-1921/app/code/core/Mage/Cms/Block/Widget/Block.php
Fiasco Labs

2
merch.docs.magento.com/ce/user_guide/…- 지난 일 헤더에 많은 초점을 둔 후 다음 패치가 언제 올지 궁금했습니다. 그리고 거기 있습니다!
hakre

2
@hakre-헤더가 실제로 API에 있지 않으면 헤더를 포함하기 전에 패치 내용을 읽었습니다. 전체 다운로드에는 http 컨트롤러 및 자바 스크립트 쿠키 템플릿에 일부 패치가 있지만 6482 패치에는 없습니다.
Fiasco Labs

답변:


13

실제 보안 패치 ( SUPEE-6482 )는 다음 두 파일에만 영향을 미치며 API 패치입니다.

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. Gift Registry Search의 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
누락 된 파일이 가장 중요한 "유효하지 않은 헤더를 사용한 크로스 사이트 스크립팅"문제를 해결한다고 생각합니다. Gift Registry는 EE 전용 기능이므로 "XSS in Gift Registry Seaerch"문제는 CE 버전의 패치 문서에 실수로 추가 된 것 같습니다.
Aad Mathijssen

1
그러나, 나는 어쨌든 내 CE 설치에 누락 된 변경 사항을 적용하고 Magento가 알아낼 때까지 기다리지 않고 V2 패치를 보내야한다고 생각했습니다. 쿠키 구성 요소에 사용되는 캐시 포이즌 및 필터링되지 않은 사용자 입력은 가장 큰 것 같습니다.
Fiasco Labs

1
Magento는 설명서를 업데이트했습니다. "유효하지 않은 헤더를 사용한 교차 사이트 스크립팅"및 "선물 레지스트리 검색의 XSS"문제는 "Magento Enterprise Edition 전용"으로 표시됩니다. 그러나 그 동안 Magento CE 1.9.2.1에는 "유효하지 않은 헤더를 사용한 사이트 간 스크립팅"문제 또는 그 일부 이상에 대한 수정 사항이 포함되어 있습니다.
Aad Mathijssen

1
Heh, CE의 단기 변화. CE에는 위시리스트가 없지만 문서 변경이 아닌 패치를 통해 사라지는 "확인되지 않은 헤더"문제가 필요합니다. 아, 음 ... 우리가 기대하는 것의 더 많은 것.
Fiasco Labs

3
테스트에 따르면 검증 되지 않은 헤더를 사용하는 사이트 간 스크립팅 은 CE 취약점이 아닙니다. 누구나 CE 취약점이있는 POC를 제공 할 수있는 경우 magento.com/security 로 이동하여 보고하십시오.
benmarks

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.phpPageCache/Model/Processor.php는 HTTP HOST를 가져올 때 검사가 추가됩니다. 이것은 언급 된 헤더 주입을 다루는 것 같습니다. 이 검사 는 HTTP 호스트에 ;또는 ,HTTP 호스트 가있는 경우에만 적용 되므로 실제 시스템에서는 중요하지 않으며 부작용이 없습니다.
  • cookie.phtml이스케이프 부가된다. 따라서 해당 파일을 덮어 쓰면 테마로 전달해야합니다.
  • 비슷한 giftregistry/search/form.phtml

요약하자면 패치를 적용하면 부작용이 없어야합니다. 변경 사항을 .phtml파일 로 전달 하십시오.


1
확인 덕분에 헤더 주입 및 쿠키 구성 요소 이스케이프는 CE로 백 포트하기 쉽습니다.
Fiasco Labs

1
포팅 할 필요가 없습니다. 다운로드 영역에는 CE 용 패치 버전도 있습니다.
Alex

5

이상하게도 EE 패치에는 다음 파일에 대한 수정 사항이 포함되어 있습니다.

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

CE 버전이 맞지 않으면 동등한 버전입니다.

나는 그 SUPEE-6482CE 버전 에 빠진 것이 있다고 생각 하고 V2가 곧 릴리스 될 수 있습니다.


나는 같은 것을 생각했다!
rob3000

2
그렇습니다. 이것이 1.9.2.0 및 1.9.2.1 설치 아카이브를 비교하여 얻은 것입니다. 이로 인해 완전히 패치 된 CE 설치가 있으며 앞서 언급 한 두 파일을 수동으로 패치했습니다. js 쿠키 파일은 해당 파일이있는 경우 사용자 정의 템플리트에도 패치해야합니다. 그들은 아마도 이전에 패치 된 파일을 패치해야하기 때문에 요청 컨트롤러를 패치로 건너 뛰었으며 CE에 대한 사랑은 없었습니다.
Fiasco Labs

1
프로덕션 환경에 배포하기 며칠 전에 "대기"해야하는 또 하나의 이유 (이러한 날짜를 사용하여 시작하기 전에 더 나은 검사를 수행). 현재 Magento Backend에 업데이트 알림이 하나 더 있습니다 (보안 취약점 4 개 대신 2 개에 대한 알림). 어쨌든, 나는 월요일까지 살기를 기다립니다.
DarkCowboy

1
Magento가 릴리스 노트를 업데이트했습니다. merch.docs.magento.com/ce/user_guide/… 일부 패치는 사실상 EE 전용입니다. 그러나 코어 기반
의이

4

에디션 CE 및 EE에서 다음 문제에 대한 수정을위한 마 젠토 릴리스 패치 SUPEE-6482

마 젠토 커뮤니티 에디션 :

  • Magento SOAP API에 자동로드 된 파일 포함
  • WSDL 파일의 SSRF 취약점

마 젠토 엔터프라이즈 에디션

  • Magento SOAP API에 자동로드 된 파일 포함
  • WSDL 파일의 SSRF 취약점
  • 검증되지 않은 헤더를 사용하는 사이트 간 스크립팅

Gift Registry 검색의 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
안녕하세요 Amit Bera (@ amit-bera), Magento 1.9.2.1의 별도 지퍼 형태로 SUPEE-6482 패치를 어디서 구할 수 있습니까?
Andhi Irawan

2
@ Andhi, magento 1.9.2.1은 이미 코드 구조에 패치 코드가 포함되어 있으므로 SUPEE-6482를 적용 할 필요가 없습니다
Amit Bera

1
@ Amit Bera, 여전히 Magento 1.9.1.0을 사용하는 경우 1.9.2.1로 업그레이드할지 여부? 패치 SUPEE-6428 만 설치할 수 있습니까?
Andhi Irawan

3
검증되지 않은 헤더 패치가 CE 패치에없는 것을 참고, 다음 파일이 감동 =>되지 않습니다 app/code/core/Mage/Core/Controller/Request/Http.phpapp/design/frontend/base/default/template/page/js/cookie.phtml누락 중입니다. 어쩌면 맨 위의 질문을 다음과 같이 바꿔야 할 것입니다. Magento 보안 패치 SUPEE-6482, 패치 되지 않은 것은 무엇입니까 ?
Fiasco Labs

1
@ 아 미트 Bera, 죄송합니다, 추가 2015년 8월 4일에서 젠토에 의해 추가되었습니다에서 magentocommerce.com/download : 다운로드 -> 젠토 커뮤니티 에디션 패치 -> SUPEE - 6482
Andhi 이르 완

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
유익한 정보를 제공하면서 관련 섹션을이 스레드에 복사하십시오. 링크가 사라지는 습관이 있기 때문에 링크 전용 답변이 가장 좋은 답변은 아닙니다 (특히 Magento 문서 링크!)
philwinkle

1
@ philwinkle-네, 우리 모두 거기에 왔습니다. MagEbayVaporation (x_x)은 많은 링크를 연결합니다.
Fiasco Labs

2

이 패치는 다른 최신 패치와 마찬가지로 많은 사본, 라이센스 및 오타 수정 사항을 포함합니다. 또한 내가 본 것 중 몇 가지 오타를 소개합니다.

실제 보안 패치 부분은 4 가지 잠재적 공격에 대한 사용자 입력 삭제를 해결하는 것으로 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.