Magento Community Edition 1.6 / Enterprise Editon 1.11以降を対象としたセキュリティパッチが公開されました 。
このパッチは、Magentoのシステム外から任意のコードを実行できる可能性がある脆弱性を修正するものです。

パッチ適用の必要があるバージョン

  • Magento Community Edition 1.6以降全て
  • Magento Enterprise Edition 1.11以降全て

各バージョン用に異なるパッチファイルが公開されています。各バージョンとの関係は以下のとおりです。
(Enterprise Editionは異なります) 

バージョンパッチ
CE 1.8 または 1.9 PATCH_SUPEE-5344_CE_1.8.0.0_v1.sh
CE 1.7 PATCH_SUPEE-5345_CE_1.7.0.2_v1.sh
CE 1.6.1.x, 1.6.2.x PATCH_SUPEE-5346_CE_1.6.1.0_v1
CE 1.6.0 PATCH_SUPEE-5341_CE_1.6.0.0_v1.sh
EE 1.13 または 1.14 PATCH_SUPEE-5344_EE_1.14.1.0_v1-2015-02-10-04-20-13.sh
EE 1.12.0.x PATCH_SUPEE-5345_EE_1.12.0.2_v1-2015-02-10-04-17-49.sh
EE 1.11.1.0 または 1.12.1.0 PATCH_SUPEE-5346_EE_1.11.1.0_v1-2015-02-10-04-13-55.sh
EE 1.11.0.x PATCH_SUPEE-5341_EE_1.11.0.0_v1-2015-02-10-04-08-59.sh


お使いのバージョンを対象にしたパッチをダウンロードしてください。 

パッチを適用しない場合に引き起こされる問題

  • 管理画面
  • OAuthを用いた外部アプリケーション
  • Magento Mobile(スマートフォン用ネイティブアプリ)

以上の認証処理において、「forwarded」というリクエスト変数が、攻撃者によって任意に与えられ、意図しない処理が実行される可能性があります。

パッチを適用することによる変更点

大きく分けて以下の2点の変更が、パッチを適用することで行われます。

  • リクエスト変数「forwarded」の廃止
  • Varien_Db_Adapter_Pdo_Mysqlのfield_expr廃止

リクエスト変数「forwarded」の廃止

パッチ適用前は、このパラメータを使用して、認証処理を通過したことの一部が判定されていました。パッチ適用後は、このパラメータは使用されなくなり、システム内部でのみ使用するフラグのみを使用するようになります(つまりは外部から操作できなくなります)

Varien_Db_Adapter_Pdo_Mysqlのfield_expr廃止

パッチ適用後は、データベースへのデータ問い合わせに用いる条件式を組み立てるクラス「Varien_Db_Adapter_Pdo_Mysql」で、これまで利用できた条件式用パラメータ「field_expr」が使えなくなります。
パッチ適用前に、この文字列を使用しているエクステンションやカスタマイズコードがないか、チェックしておくことが必要です。
(もし、使っている場合、他の処理に書き換える必要があります)

パッチの適用手順

パッチを適用する場合は、以下の手順で行ってください。

パッチのダウンロード

  1. Magentoのダウンロード画面の一番下に、セキュリティパッチのダウンロードコーナーがあります。
    (Enterprise EditionはPartner Portalからダウンロードしてください)
  2. SUPEE-5344の右にあるプルダウンで、お使いのバージョンを選び、「DOWNLOAD」ボタンを押します。
  3. ブラウザの画面上にパッチの内容が表示されるので、この内容をお使いのパソコン上に保存します(ファイル名はブラウザのアドレスバーを参照してください)。

パッチの適用

  1. パッチのファイルをMagentoがインストールされているディレクトリにアップロードします。
  2. SSHクライアントなどを用いてサーバーにログインします。
  3. Magentoがインストールされているディレクトリに移動します。
  4. 「sh パッチファイル名」とタイプし、パッチを実行します。
  5. 「Patch was applied/reverted successfully.」を表示されれば適用完了です。

パッチが適用できない環境の場合

共用レンタルサーバーなどでリモートアクセスが出来ない場合は、以下の手順で適用作業ができます。

  1. パッチをテキストエディタで開き、__PATCHFILE_FOLLOWS__と書かれている行より後ろの内容を確認する。
  2. 「diff --git」で始まる内容を確認し、対象ファイルの変更内容を適用する

修正する際は、パッチの中に書かれている、「-」の行の内容を「+」の行の内容で置き換え・追記すればOKです。

パッチの適用方法がわからない・不安だ、対象かどうかもわからないという方へ

弊社ではパッチの適用が自力では難しい、という方向けに、パッチの適用を含んだテクニカルサポート をご提供しています。
お気軽にご相談ください。

なお、弊社との間に継続的な保守サポートをご契約いただいているお客様(レンタルサーバーも含みます)におかれましては、カスタマイズ内容などを考慮した上で、パッチの適用を実施させていただきます。
個別にご連絡いたしますので、今しばらくお待ち下さい。