Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2023-25077: EC-CUBE 4系におけるクロスサイトスクリプティングの脆弱性(JVN#04785663)

Cross-site scripting vulnerability in Authentication Key Settings of EC-CUBE 4.0.0 to 4.0.6-p2, EC-CUBE 4.1.0 to 4.1.2-p1, and EC-CUBE 4.2.0 allows a remote authenticated attacker to inject an arbitrary script.

CVE
#xss#vulnerability#js#auth

更新履歴

2023/02/28 11:00

謝辞を追加

2023/02/17 11:30

【重要】修正ファイル(4.2.0用、4.1.2-p1用、4.0.6-p2用の3点)の内容に不具合がありましたので、ファイルを更新いたしました。
公開されていた時間:2023/02/14 17:00 〜 2023/02/17 11:30 上記時間帯にファイルの適応を行った方は、再度のご確認と修正対応をお願いいたします。 なお、誤ったファイルを適用していた場合でも、脆弱性そのものの修正は行われています。

2023/02/16 18:00

【重要】修正ファイルに不具合を確認
修正ファイルにより脆弱性は解消されますが、ファイル管理画面のサムネイルが一部表示されなくなる不具合があり、新しい修正ファイルを準備中です。

2023/02/14 17:00

初版公開

EC-CUBEにおけるクロスサイトスクリプティングの脆弱性

EC-CUBE 4.0系、4.1系、4.2系におけるクロスサイトスクリプティングの脆弱性(危険度: 低)があることが判明いたしました

脆弱性そのものは、修正の反映によりすぐに解決するものです。
以下のいずれかの方法により、ご対応をお願いいたします。

  • 修正ファイルを適用する
  • 修正差分を確認して適用する

皆様にはお手数おかけし誠に申し訳ございません。
本脆弱性における被害報告は現時点でございませんが、できるだけ速やかにご対応をお願いいたします。

脆弱性の概要****EC-CUBEにおけるクロスサイトスクリプティングの脆弱性****危険度:

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

  • 4.0.0〜4.0.6-p2
  • 4.1.0〜4.1.2-p1
  • 4.2.0

詳細:

EC-CUBEにはXSSの脆弱性が存在します。攻撃者は当該脆弱性を悪用して、被害者のブラウザ上で任意のスクリプトを実行させる可能性があります。

JVNからの公表内容 (2022/02/28公開)

JVN#04785663: EC-CUBE における複数のクロスサイトスクリプティングの脆弱性

  • コンテンツ管理におけるクロスサイトスクリプティング CVE-2023-22438
  • 認証キー設定におけるクロスサイトスクリプティング CVE-2023-25077
  • 商品一覧および商品詳細におけるクロスサイトスクリプティング CVE-2023-22838

修正方法1: 修正ファイルを利用する場合

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

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

    ご利用中のEC-CUBEのバージョンに該当する修正ファイルをダウンロードしてください。
    ※EC-CUBEのバージョンはこちらの手順でご確認ください。
    ※修正ファイルは各バージョンの最新版に対して作成しています。旧バージョンをご利用の場合は、「修正方法2」のご対応をお願いします。

    • 修正ファイル(4.0.6-p2用) (SHA256:478a0af625137aa49133d294357fa23861425ea75289a2b77c93a084c382e1ac)
    • 修正ファイル(4.1.2-p1用) (SHA256:0a2a75c27079936c455733d1d7276b181b34299630639ae320899828836a0fec)
    • 修正ファイル(4.2.0用) (SHA256:b4152653e71a1bcb36ef6e01946702f915b63c1ce93182051ca9818f030a9a12)

    ダウンロードし、解凍していただきますと、以下の修正ファイルがあります。必ず該当するバージョンのファイルをご利用ください。

    • src/Eccube/Resource/template/admin/Store/authentication_setting.twig
    • src/Eccube/Resource/template/admin/Store/plugin_confirm.twig
    • src/Eccube/Resource/template/default/Product/detail.twig
    • src/Eccube/Resource/template/default/Product/list.twig
    • src/Eccube/Resource/template/admin/Content/file.twig
  2. EC-CUBEファイルのバックアップ

    あらかじめEC-CUBEファイル全体のバックアップを行ってください。
    ※作業中はメンテナンスモードに切り替えることをおすすめします。

  3. 修正ファイルの反映

    以下のファイルを上書き更新してください。

    上書きするファイル

    • src/Eccube/Resource/template/admin/Store/authentication_setting.twig
    • src/Eccube/Resource/template/admin/Store/plugin_confirm.twig
    • src/Eccube/Resource/template/default/Product/detail.twig
    • src/Eccube/Resource/template/default/Product/list.twig
    • src/Eccube/Resource/template/admin/Content/file.twig

    下記にファイルが存在する場合は同様に上書きをお願いします

    • app/template/admin/Store/authentication_setting.twig
    • app/template/admin/Store/plugin_confirm.twig
    • app/template/default/Product/detail.twig
    • app/template/default/Product/list.twig
    • app/template/admin/Content/file.twig

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

  4. キャッシュの削除

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

  5. 動作確認

    管理画面にログインし、基本操作が正常に行えることをご確認ください。
    ※メンテナンスモードにされていた場合は解除をお願いします。

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

以下のコード差分情報を参照して頂き、必要な箇所に修正を反映してください。

本修正方法はEC-CUBE 4.2.0のバージョンを例として提示しております。
過去バージョンをご利用の場合は、下記修正対象ファイルの修正差分を参考にご対応お願いいたします。

※4.0, 4.1, 4.2それぞれのファイル差分は同一です修正差分

  1. src/Eccube/Resource/template/admin/Content/file.twig +2 -2
  2. src/Eccube/Resource/template/admin/Store/authentication_setting.twig +1 -1
  3. src/Eccube/Resource/template/admin/Store/plugin_confirm.twig +2 -2
  4. src/Eccube/Resource/template/default/Product/detail.twig +1 -1
  5. src/Eccube/Resource/template/default/Product/list.twig +1 -1

@@ -167,14 +167,14 @@ file that was distributed with this source code.

167

167

{% endif %}

168

168

{% for file in arrFileList %}

169

169

<tr id="{{ loop.index }}">

170

- <td class="align-middle text-center" onDblClick="eccube.fileManager.setTreeStatus(‘tree_status’);eccube.fileManager.doubleClick(arrTree, '{{ file.file_path }}’, {% if file.is_dir %}true{% else %}false{% endif %}, '{{ tpl_now_dir }}’, false)">

170

  • <td class="align-middle text-center">

171

171

{% if file.is_dir %}

172

172

<i class="fa fa-folder-o fa-2x"></i>

173

173

{% else %}

174

174

{% if file.extension|file_ext_icon({}, true) == ‘fa-file-image-o’ %}

175

175

<div class="d-inline-block p-3 bg-light"

176

176

style="background: no-repeat center center;

177

- background-image: url('{{ asset(‘’, ‘user_data’) }}{{ file.file_path|slice(1) }}’);

177

  • background-image: url(‘{{ asset(file.file_path|slice(1)|escape(‘css’), ‘user_data’) }}’);

178

178

background-size: contain; width: 49px; height: 57px;">

179

179

</div>

180

180

{% else %}

@@ -63,7 +63,7 @@ file that was distributed with this source code.

63

63

"captcha": $(‘#captcha_text’).val(),

64

64

"eccube_url": '{{ eccubeUrl }}’,

65

65

"eccube_version": "{{ constant(‘Eccube\\Common\\Constant::VERSION’) }}",

66

- "eccube_shop_name": “{{ eccubeShopName }}”

66

  • "eccube_shop_name": “{{ eccubeShopName|escape(‘js’) }}”

67

67

}

68

68

}).done(function(data) {

69

69

$(‘#captcha’).modal(‘hide’);

@@ -101,12 +101,12 @@ $(function() {

101

101

relatedTarget = $(e.relatedTarget);

102

102

mode = MODES[relatedTarget.data(‘mode’)];

103

103

$('.modal-title’, modal).text(mode.name + ‘確認’);

104

- message.text(‘「{{ item.name }} ({{ item.version }})」を’ + mode.name + ‘しますか?’);

104

  • message.text(‘「{{ item.name|escape(‘js’) }} ({{ item.version }})」を’ + mode.name + ‘しますか?’);

105

105

$(‘#installBtn’).text(mode.name);

106

106

});

107

107

108

108

$(‘#installBtn’).on('click’, function() {

109

- message.text(‘「{{ item.name }} ({{ item.version }})」を’ + mode.name + ‘中。この処理には数分かかる場合があります。画面をリロードせずにこのままお待ち下さい。’);

109

  • message.text(‘「{{ item.name|escape(‘js’) }} ({{ item.version }})」を’ + mode.name + ‘中。この処理には数分かかる場合があります。画面をリロードせずにこのままお待ち下さい。’);

110

110

var footer = $('div.modal-footer’, modal).hide();

111

111

var progress = $('div.progress’, modal).show();

112

112

var statusBar = $(‘#installStatus’).text(‘’);

@@ -218,7 +218,7 @@ file that was distributed with this source code.

218

218

}).done(function(data) {

219

219

// レスポンス内のメッセージをalertで表示

220

220

$.each(data.messages, function() {

221

- $(‘#ec-modal-header’).html(this);

221

  • $(‘#ec-modal-header’).text(this);

222

222

});

223

223

224

224

$(‘.ec-modal’).show()

@@ -65,7 +65,7 @@ file that was distributed with this source code.

65

65

}).done(function(data) {

66

66

// レスポンス内のメッセージをalertで表示

67

67

$.each(data.messages, function() {

68

- $(‘#ec-modal-header’).html(this);

68

  • $(‘#ec-modal-header’).text(this);

69

69

});

70

70

71

71

$(‘.ec-modal’).show()

問い合わせ先

本脆弱性に関するお問合せ:

EC-CUBE 運営チーム
MAIL: [email protected]

謝辞

本脆弱性は、

コンテンツ管理におけるクロスサイトスクリプティング CVE-2023-22438

  • 三井物産セキュアディレクション株式会社 望月岳 様・白倉大河 様
  • 株式会社ブロードバンドセキュリティ 志賀 拓馬 様

認証キー設定におけるクロスサイトスクリプティング CVE-2023-25077

  • 株式会社サイバーディフェンス研究所 岩崎 徳明 様

商品一覧および商品詳細におけるクロスサイトスクリプティング CVE-2023-22838

  • 日本工業大学 データサイエンス学科 橋浦研究室 高橋 黎 様

よりご報告いただきました。
この場をお借りして、厚く御礼申し上げます。

Related news

CVE-2023-22438: EC-CUBE 3系におけるクロスサイトスクリプティングの脆弱性(JVN#04785663)

Cross-site scripting vulnerability in Contents Management of EC-CUBE 4 series (EC-CUBE 4.0.0 to 4.0.6-p2, EC-CUBE 4.1.0 to 4.1.2-p1, and EC-CUBE 4.2.0), EC-CUBE 3 series (EC-CUBE 3.0.0 to 3.0.18-p5), and EC-CUBE 2 series (EC-CUBE 2.11.0 to 2.11.5, EC-CUBE 2.12.0 to 2.12.6, EC-CUBE 2.13.0 to 2.13.5, and EC-CUBE 2.17.0 to 2.17.2) allows a remote authenticated attacker to inject an arbitrary script.

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda