EC-CUBE4.0におけるクロスサイトスクリプティングの脆弱性(JVN#95292458)
更新履歴
- 2021/06/29 11:00
- 【重要】2021年6月29日 11:00 までに本ページに記載していた修正方法に不備があり、他の問題が発生することが判明いたしました。
上記時間帯までに修正を行った方は、再度のご確認と修正対応をお願いいたします。詳細については以下のページを参照ください。
なお、本ページの修正方法は2021年6月29日 11:00に更新しております。 修正が未適用の場合、本ページの記載にそって修正いただいて問題ありません。
- 2021/06/29 11:00
- 「修正方法1: 修正用の差分ファイルを利用する場合」の修正ファイルを更新
- 2021/06/29 11:00
- 「修正方法2: 修正差分を確認して適宜反映する場合」の差分の誤りを修正
- 2021/06/22 13:00
- 「修正方法3: EC-CUBEのバージョンアップを行う場合」を追加
- 2021/06/10 13:00
- 初版公開
クロスサイトスクリプティング脆弱性のお知らせ
EC-CUBE 4.0系に1件の脆弱性があることが判明いたしました。
(本脆弱性における被害報告は現時点でございません)
脆弱性そのものは、修正ファイルの反映によりすぐに解決するものです。以下のいずれかの方法により、ご対応をお願いいたします。
- 修正方法1: 修正用の差分ファイルを利用する場合
- 修正方法2: 修正差分を確認して適宜反映する場合
- 修正方法3: EC-CUBEのバージョンアップを行う場合
皆様にはお手数おかけし誠に申し訳ございません。
できるだけ速やかにご対応をお願いいたします。
脆弱性の概要
クロスサイトスクリプティングの脆弱性
危険度:
中
不具合が存在するEC-CUBEのバージョン:
4.0.0 〜 4.0.5-p1
詳細
該当バージョンのEC-CUBEにはクロスサイトスクリプティングの脆弱性が存在します。 悪意のある第三者により用意された外部サイトへアクセスすることで、クロスサイトスクリプティングが発生する可能性があります。
修正方法1: 修正用の差分ファイルを利用する場合
開発環境がある場合は、まず開発環境でお試しください。
以下の手順に従って、修正ファイルの反映をお願いいたします。
- 修正ファイルのダウンロード
ご利用中のEC-CUBEのバージョンに該当する修正ファイルをダウンロードしてください。
※ご利用中のEC-CUBEのバージョンはこちらの手順でご確認ください。
修正ファイルダウンロード(4.0系) (SHA256:51c9257cee816b43840747e759e13614ce8604989e91aace8b3fc27960ea1265)
ダウンロードし、解凍していただきますと、バージョンごとにフォルダが別れており、その中に以下の修正ファイルがあります。必ず該当するバージョンのファイルをご利用ください。- src/Eccube/Resource/template/admin/Setting/Shop/payment_edit.twig
- .htaccess
- EC-CUBEファイルのバックアップ
あらかじめEC-CUBEファイル全体のバックアップを行ってください。
※作業中はメンテナンスモードに切り替えることをおすすめします。
- 修正ファイルの反映
以下のファイルを上書き更新してください。
上書きするファイル
- src/Eccube/Resource/template/admin/Setting/Shop/payment_edit.twig
- .htaccess
下記にファイルが存在する場合は同様に上書きをお願いします。
- app/template/admin/Setting/Shop/payment_edit.twig
※開発環境がある場合は、開発環境での反映・動作確認を行った後に、本番環境への反映をおすすめします。 - キャッシュの削除
EC-CUBE のキャッシュの削除が必要です。
EC-CUBE の管理画面にログインいただき、コンテンツ管理 -> キャッシュ管理 のページからキャッシュの削除をお願いいたします。 - 動作確認
管理画面にログインし、基本操作が正常に行えることをご確認ください。
※メンテナンスモードにされていた場合は解除をお願いします。
修正方法2: 修正差分を確認して適宜反映する場合
EC-CUBE本体のソースコードをカスタマイズされている方向けです。
下記のコード差分情報を参照して頂き、必要な箇所に修正を反映してください。
- 修正差分の反映
対象ファイル
src/Eccube/Resource/template/admin/Setting/Shop/payment_edit.twig
49行目
変更前 var proto_img = '<div class="c-form__fileUploadThumbnail" style="background-image:url(\'__path__\');">' + 変更後 var proto_img = '<div class="c-form__fileUploadThumbnail">' +
60行目
変更前 var $img = $(proto_img.replace(/__path__/g, path)); 変更後 var $img = $(proto_img).css('background-image', 'url(' + path + ')');
76行目
変更前 var $img = $(proto_img.replace(/__path__/g, path)); 変更後 var $img = $(proto_img).css('background-image', 'url(' + path + ')');;
下記にファイルが存在する場合は同様に修正をお願いします。
app/template/admin/Setting/Shop/payment_edit.twig対象ファイル
.htaccess
3〜11行目
変更前 <FilesMatch "^composer|^COPYING|^\.env|^\.maintenance|^Procfile|^app\.json|^gulpfile\.js|^package\.json|^package-lock\.json|web\.config|^Dockerfile|^\.editorconfig|\.(ini|lock|dist|git|sh|bak|swp|env|twig|yml|yaml|dockerignore|sample)$"> order allow,deny deny from all </FilesMatch> <Files ~ "index.php"> order deny,allow allow from all </Files> 変更後 <Files ~ "/index.php"> order deny,allow allow from all </Files> <FilesMatch "(?<!\.gif|\.png|\.jpg|\.jpeg|\.css|\.ico|\.js|\.svg|\.map)$"> SetEnvIf Request_URI "/vendor/" deny_dir Order allow,deny Deny from env=deny_dir Allow from all </FilesMatch> <FilesMatch "^composer|^COPYING|^\.env|^\.maintenance|^Procfile|^app\.json|^gulpfile\.js|^package\.json|^package-lock\.json|web\.config|^Dockerfile|^\.editorconfig|\.(ini|lock|dist|git|sh|bak|swp|env|twig|yml|yaml|dockerignore|sample)$"> order allow,deny deny from all </FilesMatch>
- キャッシュの削除
EC-CUBE のキャッシュの削除が必要です。
EC-CUBE の管理画面にログインいただき、コンテンツ管理 -> キャッシュ管理 のページからキャッシュの削除をお願いいたします。
修正方法3: EC-CUBEのバージョンアップを行う場合
EC-CUBE 4.0.6-p1以降の最新版にバージョンアップしていただくことで、本件の脆弱性は修正されます。
公式サイトのダウンロードページから最新バージョンをダウンロードしてご利用ください。
開発ドキュメント「バージョンアップ」の手順を参考に、EC-CUBEのバージョンアップをお願い致します。
問い合わせ先
本脆弱性に関するお問合せ:
EC-CUBE 運営チーム
MAIL: [email protected]
謝辞
本脆弱性は、株式会社STNet森山響 様よりご報告いただきました。
この場をお借りして、厚く御礼申し上げます。