EC-CUBE用プラグイン「商品画像一括アップロードプラグイン」におけるアップロードファイルの検証不備の脆弱性(JVN#30900552)

更新履歴
2022/09/15 16:50
JVNからの公表内容情報へのリンクを追加
2022/09/14 13:00
脆弱性の名称をJVN公表内容と合わせました(※脆弱性の内容に変更はありません)
2022/09/09 10:00
初版公開

EC-CUBE用プラグイン「商品画像一括アップロードプラグイン」におけるアップロードファイルの検証不備の脆弱性のお知らせ

EC-CUBE用プラグイン「商品画像一括アップロードプラグイン」に脆弱性(危険度: 低)があることが判明いたしました。

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

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

脆弱性の概要

EC-CUBE用プラグイン「商品画像一括アップロードプラグイン」におけるアップロードファイルの検証不備の脆弱性

危険度:

不具合が存在する「商品画像一括アップロードプラグイン」のバージョン:

詳細:

商品画像一括アップロードプラグインには、不正なファイルがアップロード可能な脆弱性が存在します。

JVNからの公表内容 (2022/09/15公開)

JVN#30900552 EC-CUBE 用プラグイン「商品画像一括アップロードプラグイン」におけるアップロードファイルの検証不備の脆弱性

修正方法1: プラグインのバージョンアップを行う場合


「商品画像一括アップロードプラグイン」を最新版にバージョンアップしていただくことで、本件の脆弱性は修正されます。ご利用の方は、速やかにプラグインのバージョンアップをお願いいたします。

修正済みプラグインのバージョン

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

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

対象バージョン

修正差分

■ バージョン 4.1.0 (EC-CUBE 4系対応)

対象ファイル

Controller/Admin/ConfigController.php CHANGED
@@ -20,6 +20,7 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
20
20
  use Symfony\Component\EventDispatcher\EventDispatcherInterface;
21
21
  use Symfony\Component\Filesystem\Filesystem;
22
22
  use Symfony\Component\Finder\Finder;
23
+ use Symfony\Component\HttpFoundation\File\File;
23
24
  use Symfony\Component\HttpFoundation\File\UploadedFile;
24
25
  use Symfony\Component\HttpFoundation\Request;
25
26
  use Symfony\Component\HttpKernel\Event\PostResponseEvent;
@@ -63,7 +64,27 @@ class ConfigController extends AbstractController
63
64
 
64
65
  return $this->redirectToRoute('product_images_uploader_admin_config');
65
66
  }
67
+ $count = $finder->in($tmpDir)
68
+ ->files()
69
+ ->ignoreDotFiles(false)
70
+ ->filter(function (\SplFileInfo $file) {
71
+ $file = new File($file->getRealPath());
72
+ if (strpos($file->getMimeType(), 'image') === 0) {
66
73
 
74
+ return false;
75
+ }
76
+ if (in_array(strtolower($file->getExtension()), ['gif', 'jpg', 'jpeg', 'png'])) {
77
+
78
+ return false;
79
+ }
80
+
81
+ return true;
82
+ })->count();
83
+ if ($count > 0) {
84
+ $this->addError('zipファイル内に画像以外のファイルが含まれています。', 'admin');
85
+
86
+ return $this->redirectToRoute('product_images_uploader_admin_config');
87
+ }
67
88
  // save_imageへコピー
68
89
  $fs->mirror($tmpDir, $this->eccubeConfig->get('eccube_save_image_dir'));
69
90
 

問い合わせ先

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

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