MagentoセキュリティパッチSUPEE-6482、パッチの適用対象


28

2015年4月8日、新しいセキュリティパッチがリリースされました。同僚と私はパッチをチェックしていましたが、何が変更されたかについて議論するのはいつでも嬉しいことです。起こりうる最悪のことは何ですか?

更新:投稿を完了するために、今日送信されたmagentoメールを追加したかっただけです。 Magentoメールアップデート


1
最近はまとめがあります。ただし、すでにチェックしていて議論したい場合は、先に進んでください!あなたの考えや発見を共有してください!
mam08ixo

2
パッチ自体はありません。1.9.2.1用のフルインストールし、それらの変更、この時点では、それが唯一のアドレスに思わ4つのセキュリティ問題について検討しなければならないであろう
フィアスコLabsの

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
フィアスコLabsの

2
merch.docs.magento.com/ce/user_guide/…-最後の日、ヘッダーに焦点が絞られた後、次のパッチがいつリリースされるのか疑問に思いました。そしてそこにある!
-hakre

2
@hakre-ヘッダーを実際にAPIに含めない限り、ヘッダーを含める前にパッチの内容を読みます。完全ダウンロードでは、httpコントローラーとjavascript cookieテンプレートにいくつかのパッチが含まれていますが、6482パッチには含まれていません。
フィアスコラボ

回答:


13

実際のセキュリティパッチ(SUPEE-6482)は、次の2つのファイルにのみ影響し、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の完全インストールはまったく別の問題です。パッチが適用された他の2つの項目を把握するために、1.9.2.0と1.9.2.1の間でソースコードを比較しました。

リリースノートはフルインストーラー用です。パッチをチェックして、リリースノートに記載されているすべてのアイテムが実際に含まれているかどうかを確認する必要があります。

パッチ未適用のサーバーを実行することの意味:

  1. 未検証ヘッダーを使用したクロスサイトスクリプティング=> キャッシュポイズニング
  2. Magento SOAP APIのオートロードされたファイルインクルード=> リモートコードのオートロード
  3. ギフトレジストリ検索のXSS => Cookieの盗難とユーザーのなりすまし
  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バージョンのパッチドキュメントに誤って追加されているようです。
アードMathijssen

1
はい、とにかくCEインストールに欠落している変更を適用し、Magentoがそれを見つけてV2パッチを送信するのを待たずに十分に重要であると考えました。Cookieコンポーネントで使用されるキャッシュポイズニングとフィルター処理されていないユーザー入力は、大したことのようです。
フィアスコラボ

1
Magentoはドキュメントを更新しました。「未検証のヘッダーを使用したクロスサイトスクリプティング」および「ギフトレジストリ検索でのXSS」の問題は両方とも「For Magento Enterprise Editionのみ」とマークされています。ただし、当面の間、Magento CE 1.9.2.1には「未検証のヘッダーを使用したクロスサイトスクリプティング」問題、または少なくともその一部の修正が含まれています。
Aad Mathijssen

1
へえ、アクションのCE短期変更。CEにはウィッシュリストはありませんが、ドキュメントの変更ではなく、パッチを介して削除するために「検証されていないヘッダー」の問題が必ず必要です。ああ、まあ...私たちが期待することの多く。
フィアスコLabsの

3
記録のために-テストによると- 未検証ヘッダーを使用したクロスサイトスクリプティングはCEの脆弱性ではありません。CEの脆弱性があることを誰かがPOCに提供できる場合は、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.phpHTTPのHOSTを取得するときにチェックが追加されます。これは、前述のヘッダーインジェクションをカバーしているようです。このチェックは、HTTPホストがある;場合または,HTTPホストにある場合にのみ適用されるため、実際のシステムでは重要ではなく、悪影響はありません。
  • cookie.phtmlエスケープ追加されます。そのため、ファイルを上書きする場合は、これをテーマに転送する必要があります
  • 同様の giftregistry/search/form.phtml

まとめると、パッチを適用しても悪影響はないはずです。変更を.phtmlファイルに転送することを忘れないでください。


1
確認のおかげで、ヘッダーインジェクションとCookieコンポーネントのエスケープはCEに簡単にバックポートできます。
フィアスコラボ

1
移植する必要はありません。ダウンロードエリアにはCE用のパッチバージョンもあります。
アレックス

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インストールがあります。先に進み、言及した2つのファイルに手動でパッチを適用しました。js cookieファイルにカスタムテンプレートが含まれている場合は、カスタムテンプレートにもパッチを適用する必要があります。パッチは、以前にパッチを適用したファイルにパッチを適用する必要があるため、おそらくリクエストコントローラーをスキップしました。
フィアスコラボ

1
実稼働環境にデプロイする数日前に「待機」するもう1つの理由(そして、これらの日を使用して、稼働前のより良いチェックを行います)。今日、Magentoバックエンドでもう1つの更新通知(4つのセキュリティ脆弱性ではなく2つのセキュリティ脆弱性に関する通知のみ)。とにかく、少なくとも月曜日まではライブを待ちます。
ダークカウボーイ

1
Magentoはリリースノートを更新しました:merch.docs.magento.com/ce/user_guide/… 一部のパッチは実質的にEEのみです。彼らはCE 1.9.2.1に統合されているようしかし、私はまだ、なぜこれらの2つのファイルは、コアベース、CEパッチに懸念されていない得ることはありません...
アントワーヌKociuba

4

Magentoは、CEおよびEEエディションの以下の問題を修正するパッチSUPEE-6482をリリースします。

Magento Community Editionの場合:

  • Magento SOAP APIのオートロードされたファイルインクルージョン
  • WSDLファイルのSSRF脆弱性

Magento Enterprise Editionの場合

  • Magento SOAP APIのオートロードされたファイルインクルージョン
  • WSDLファイルのSSRF脆弱性
  • 未検証のヘッダーを使用したクロスサイトスクリプティング

ギフトレジストリ検索の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の個別のzip形式のパッチSUPEE-6482はどこで入手できますか?
アンディイラワン

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のみをインストールできますか?
アンディイラワン

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
@ Amit Bera、申し訳ありませんが、Magentoによって2015年8月4日にmagentocommerce.com/downloadに追加されました。ダウンロード-> Magento Community Editionパッチ-> SUPEE-6482
Irawan

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.