EC-CUBE 3系・4系のTwigの設定の不備による脆弱性(JVN#29195731)|当てはまるかの確かめ方と修正
EC-CUBE 3.0.0から3.0.18-p6と、4.0.0から4.2.2には、管理者の権限を持つ人が、サーバの上で任意のプログラムを動かせてしまう脆弱性があります。開発元から修正ファイルが出ています。
この記事では、自分のサイトが当てはまるかの確かめ方と、修正の当て方をまとめます。
何が起きたか
EC-CUBEは、お店の画面を組み立てるのにTwigという仕組みを使っています。3系と4.2.2までの4系では、一部の画面でこのTwigの設定に不備があり、サーバの上で任意のプログラムを動かされるおそれがあります。このような脆弱性は、RCE(リモートコード実行。外部からサーバの上でプログラムを動かされること)と呼ばれます。
開発元は2023年10月26日に告知と修正ファイルを出し、11月7日にJVN(日本の脆弱性情報のデータベース)でJVN#29195731(CVE-2023-46845)として公表されました。公表の時点で、被害の報告はありません。
開発元の評価は、3段階のうち「低」です。JVNでは、攻撃には管理者の権限を持つユーザであることが要るとされています。名前から受ける印象ほど慌てる話ではありませんが、管理者のアカウントを使われた場合には、サイトが動いているサーバの上でプログラムを動かされうるため、修正を当てておきます。
自分のサイトが該当するか
まず、EC-CUBEのバージョンを確かめます。4系は管理画面の「設定 > システム設定 > システム情報」に、3系は「設定 > システム情報設定 > システム情報」に表示されます。
| 系列 | 当てはまるバージョン | 修正版 |
|---|---|---|
| 3.0系 | 3.0.0〜3.0.18-p6 | 3.0.18-p7 |
| 4.0系 | 4.0.0〜4.0.6-p3 | 4.0.6-p4 |
| 4.1系 | 4.1.0〜4.1.2-p2 | 4.1.2-p3 |
| 4.2系 | 4.2.0〜4.2.2 | 4.2.3 |
表示が修正版かそれより新しければ、当てはまりません。4.3系と2系は、この発表の対象に入っていません。
表示が当てはまるバージョンでも、すでに修正ファイルを当ててある場合があります。修正ファイルで上書きするファイルには、バージョンの表示に使うファイルが含まれないため、システム情報に出るバージョンは変わりません。サイトの保守を頼んでいる会社や、作業の記録で確かめます。
3系と4.0系を使っているサイトは、この修正とは別に、古いバージョンを使い続けることの課題もあります。サポート終了への対応もあわせてご覧ください。
今できること
修正を当てる
開発元の告知に、系列ごとの修正ファイルと手順が載っています。4.2系は、修正が入っている4.2.3以降へ更新する方法もあります。修正ファイルを当てる流れは次のとおりです。
- 本番のサイトとは別の、開発用の環境で動作を確かめる
- EC-CUBEのファイル全体をバックアップする
- 修正ファイルで、対象のファイルを上書きする
- 管理画面の「コンテンツ管理 > キャッシュ管理」で、キャッシュを削除する
- お客さまの画面と管理画面で、ふだんの操作ができるかを確かめる
4.0系と3系は、修正ファイルを当てる前に、EC-CUBEが使っているTwigの部品を更新する必要があります。4.0系はtwig/twigをv2.15.5、twig/extensionsをv1.5.4に、3系はtwig/twigを1.34.0以上にします。手順は開発元の告知に載っています。
修正ファイルは、各系列の修正前の最新版(3.0.18-p6、4.0.6-p3、4.1.2-p2、4.2.2)に合わせて作られています。それより古いバージョンや、本体やデザインのテンプレートをカスタマイズしているサイトについて、開発元は、上書きではなく修正の差分を見て当てるよう案内しています。告知に載っている差分を見て、今のファイルに同じ変更を加えます。
当てたあとに表示を確かめる
修正を当てると、Twigで使える書き方が、開発元の許可したものに絞られます。そのため、管理画面の「商品登録」のフリーエリアや、「ページ管理」のmetatagに書いた内容のうち、許可されていない書き方をしている部分は、お客さまの画面に表示されなくなります。ほかの部分は、これまでどおり表示されます。
商品ページやページの設定に独自の書き方をしているサイトは、開発用の環境で表示を確かめてから、本番に当ててください。使っている書き方を許可に足す方法も、開発元の告知に載っています。
あわせて見直すこと
JVNでは、攻撃には管理者の権限が要るとされています。修正とあわせて、管理画面に入れる人と場所を絞っておきます。
- 管理画面に入れるメンバー - 「メンバー管理」で、いまは管理画面を使わない人のアカウントが残っていないかを見直します。
- 管理者のパスワード - ほかのサービスと同じパスワードを使い回していないかを見直します。
- 管理画面に入れる場所 - 「セキュリティ管理」の「IP制限」で、管理画面に入れるIPアドレスを、お店や作業をする場所のものだけに絞れます。4系は「設定 > システム設定」、3系は「設定 > システム情報設定」の中にあります。
- パスワードを盗むメール - 管理者のIDとパスワードは、サーバ会社などをかたる詐欺メールで盗まれることがあります。見抜き方はEC-CUBEの管理者に届く詐欺メールにまとめています。
4.1から4.3のサイトは、二段階認証をすり抜けられる脆弱性(JVN#63765888)に当てはまるかもあわせて確かめてください。4.2.3に更新したサイトも、この発表の対象に入ります。
「メンバー管理」で見覚えのない管理者のアカウントを見つけたときは、削除する前にご相談ください。削除すると、調査の手がかりが消えてしまうことがあります。
相談先
当てはまるか分からないとき、カスタマイズがあって修正ファイルを当てられないとき、Twigの更新に不安があるときは、セキュリティの対応でご相談を承っています。EC-CUBEの更新を続けて見てほしい場合は、見守り契約をご覧ください。