EC-CUBE 4.0系: クロスサイトスクリプティング脆弱性 (JVN#97554111) について

更新履歴
2021/05/24 17:00
「HTMLメールテンプレートを削除するカスタマイズを実施している場合の注意喚起」を追記
2021/05/21 14:10
「不正データの削除や修正方法について」を追記
2021/05/11 20:40
「攻撃の確認方法」を更新
「脆弱性の概要」に JVNからの公表内容情報を追記
2021/05/11 12:00
「攻撃の確認方法」を更新
2021/05/10 09:00
「修正方法3」に、EC-CUBE のバージョンアップでの対応を追記
2021/05/09 15:00
「修正方法2」に、修正適用後のキャッシュ削除が必須の旨を追記
2021/05/09 12:00
「攻撃の確認方法」を更新
2021/05/08 17:00
「攻撃の確認方法」を追記
2021/05/07 17:00
脆弱性情報とHotfixパッチの公開

EC-CUBE クロスサイトスクリプティング脆弱性に関する修正のお知らせ

いつもEC-CUBEをご利用いただきまして、誠にありがとうございます。
EC-CUBE 4.0系に1件の脆弱性があることが判明いたしました。

すでに本脆弱性を利用した攻撃が複数確認されており、危険度の高い脆弱性となりますので、以下のいずれかの方法で早急に対応をお願いします。

皆様にはお手数おかけし誠に申し訳ございません。
できるだけ速やかに対応をお願いいたします。

脆弱性の概要

クロスサイトスクリプティングの脆弱性


危険度:


不具合が存在するEC-CUBEのバージョン:
4.0.0 〜 4.0.5

JVN (2021/5/10 公開)からの公表内容:
JVN#97554111: EC-CUBE におけるクロスサイトスクリプティングの脆弱性

詳細

不正な受注情報が作成された状態で、特定の管理画面操作をするとクロスサイトスクリプティングが発生する可能性があります。

修正方法1: 修正用の差分ファイルを利用する場合(Hotfixパッチ)

2021/05/10 9:00 追記
2021/05/07 に公開いたしました Hotfix パッチと同様の内容となります。
Hotfix パッチの適用とキャッシュ削除を完了されているサイトは脆弱性の対応が完了していますので、攻撃の確認方法をご確認ください。


開発環境がある場合は、まず開発環境でお試しください。
以下の手順に従って、修正ファイルの反映をお願いいたします。

  1. 修正ファイルのダウンロード

    ご利用中のEC-CUBEのバージョンに該当する修正ファイルをダウンロードしてください。

    [バージョンの確認方法]
    こちらの手順でご確認ください。

    修正ファイルダウンロード (SHA256:a52d5356796a4d12c230bc92dd8d01d4c2e902704eeb74c30edfe1675ab58db0)

    修正ファイルはいずれのバージョンでも1ファイルのみです。
    ダウンロードしていただきますと、各バージョンごとフォルダが別れており、その中に修正ファイル(mail_confirm.twig)があります。必ず該当するバージョンのファイルをご利用ください。

  2. EC-CUBEファイルのバックアップ

    あらかじめEC-CUBEファイル全体のバックアップを行ってください。

    ※作業中はメンテナンスモードに切り替えることをおすすめします。

  3. 修正ファイルの反映

    手順1で用意したファイル(mail_confirm.twig)で、以下のファイルを上書き更新してください。

    上書きするファイル:
    /src/Eccube/Resource/template/admin/Order/mail_confirm.twig

    下記にファイルが存在する場合は同様に上書きをお願いします。
    /app/template/admin/Order/mail_confirm.twig

    ※EC-CUBE本体のカスタマイズをしている場合、修正箇所の差分をご確認のうえ反映をお願いします。
    ※開発環境がある場合は、開発環境での反映・動作確認を行った後に、本番環境への反映をおすすめします。

  4. キャッシュの削除

    (3) はテンプレートの修正のため、EC-CUBE のキャッシュの削除が必要です。
    EC-CUBE の管理画面にログインいただき、コンテンツ管理 -> キャッシュ管理 のページからキャッシュの削除をお願いいたします。

  5. 動作確認

    管理画面にログインし、基本操作が正常に行えることをご確認ください。

    ※メンテナンスモードにされていた場合は解除をお願いします。

修正方法2: 修正差分を確認して適宜反映する場合

EC-CUBE本体のソースコードをカスタマイズされている方向けです。
下記のコード差分情報を参照して頂き、必要な箇所に修正を反映してください。

  1. 修正差分の反映
    対象ファイル
    src/Eccube/Resource/template/admin/Order/mail_confirm.twig

    114行目付近を変更下さい。
    変更前
    {{ form.tpl_data.vars.data|trans|raw|nl2br }}
    変更後
    {{ form.tpl_data.vars.data|trans|nl2br }}


    下記にファイルが存在する場合は同様に修正をお願いします。
    /app/template/admin/Order/mail_confirm.twig

  2. キャッシュの削除

    (1) はテンプレートの修正のため、EC-CUBE のキャッシュの削除が必要です。

    EC-CUBE の管理画面にログインいただき、コンテンツ管理 -> キャッシュ管理 のページからキャッシュの削除をお願いいたします。

修正方法3: EC-CUBEのバージョンアップを行う場合

EC-CUBE 4.0.5-p1以降の最新版にバージョンアップしていただくことで、本件の脆弱性は修正されます。

公式サイトのダウンロードページから最新バージョンをダウンロードしてご利用ください。

開発ドキュメント「バージョンアップ」の手順を参考に、EC-CUBEのバージョンアップをお願い致します。

攻撃の確認方法

※ 不審なデータを管理画面から参照すると攻撃が成立する可能性があります。不審なデータを捜索する場合は管理画面から確認せず、データベースや受注メールから調査を行うようお願いいたします。
※ 特に攻撃とみられる受注および、メール通知のプレビューは絶対に表示しないでください。
※ 攻撃が成立していた場合、同一サーバーに保管されたログなど、アクセスログなどが改ざんされている可能性があります。

本脆弱性で攻撃されたかどうかは、顧客/受注/配送データをご確認ください。
名前や住所、会社名などに
<script>~</script>
といった、通常ではあり得ない記号や文字列などが設定されている場合は、攻撃を受けた可能性があります。

今回のケースでは、この受注に対する受注詳細画面からのメール通知のプレビュー画面にて、クロスサイトスクリプティングの攻撃が成立することが確認されていますので、アクセスログ等から該当の受注でメール通知のプレビュー画面を表示していたかをご確認ください。

既に攻撃された形跡が確認された場合は、早急にサイトを停止しシステム担当者やセキュリティの専門企業にご相談くださいませ。また、クレジットカード決済を扱われている場合は、クレジットカード会社や決済代行会社にもご報告をお願いします。
攻撃の形跡が確認された場合でもサイト改ざんや情報漏洩等の実被害が発生しているとは限りませんが、今後の被害を発生させないためにもご理解をお願いいたします。

不正データの削除や修正方法について

データ保存のためにDumpなどのバックアップを取得した上で、不正なコードを含むデータの削除や、無害なコード(ハイフン "ー" など)に置換を行ってください。
データベースでの操作が難しい場合は、該当受注をキャンセルや注文取消のようなステータスに変更してください。

HTMLメールテンプレートを削除するカスタマイズを実施している場合の注意喚起

HTMLメールテンプレートを削除するカスタマイズを実施している際に、受注情報を参照することでXSSが成立する条件が新たに確認されました。

前提

HTMLメールテンプレートを削除するカスタマイズを実施している場合に発生

事象

src/Eccube/Resource/template/default/Mail/*.html.twigにあるsrc以下のHTMLメールテンプレートを削除し、app/template/以下にもHTMLメールテンプレートが存在しない場合、以下の機能でXSSが成立します。

  1. 受注一覧 > 一括操作「メールする」
  2. 受注一覧 > 出荷メール送信
  3. 受注一覧 > 出荷済みにする
  4. 受注編集 > 出荷登録 > 出荷メール送信
  5. 受注編集 > メール作成 > メールを確認
修正方法

以下のいずれかを実施いただくことで問題が発生しないことを確認しております。

  1. 削除したsrc/Eccube/Resource/template/default/Mail/*.html.twigを復元する
  2. テキストメールのテンプレートから、{% autoescape false %}{% endautoescape %}の記述を削除する
その他カスタマイズ箇所の確認のお願い

EC-CUBE標準のメールテンプレートではなく、カスタマイズによりテキストのみのメールテンプレートを追加している場合でも本事象が成立する可能性があります。 修正方法にそってご確認をお願いいたします。

問い合わせ先

攻撃の形跡が確認された場合の相談先(セキュリティ企業のご紹介):


その他、本脆弱性に関するお問合せ:

EC-CUBE 運営チーム 田口
MAIL: support@ec-cube.net