私からのメールでこのページをご案内した場合、それはお使いのウェブサイトが、既知のセキュリティ問題の影響を受ける範囲に含まれるバージョンの Welcart e-Commerce(Welcart / Collne 提供の無料の WordPress 向け e コマースプラグインで、お使いのサイトのファイルでは /wp-content/plugins/usc-e-shop/ に置かれています)を実行しているように見えるためです。このページでは、その問題が何であるか、お使いのサイトにとってどの程度重要か、惑わされずにバージョンを確認する方法、そして更新方法を説明します。

この問題は CVE-2026-19914 で、認証不要の格納型クロスサイトスクリプティング(XSS)の脆弱性です。2.12.1 までのすべてのリリース(2.12.1 を含む) に影響し、2026 年 8 月 31 日に公開された 2.12.2 で修正されています。2.12.1 またはそれより古いバージョンをお使いの場合は、Welcart を 2.12.2 以降に更新してください。この問題は Wordfence による評価で CVSS 7.2(High/高) と評価されています。この問題に対する公開された攻撃コードは、私の知る限り存在しません。

安全な、より古いバージョンは存在しません。 これは、プラグインの歴史の途中で入り込み、後に修正された不具合ではありません。この問題の背後にある、エスケープされないままの出力は、プラグインの歴史全体を通じて存在してきました。バージョン 1.7.0 までさかのぼって存在していることを私は確認しています。ですから、「自分のインストールは古すぎるので影響を受けない」というのは、ここでは逃げ道になりません。影響を受けないバージョンは 2.12.2 以降のみです。

まず何よりも先に、この問題が何であり、どのように成立するのかについて一言申し上げます。通知を実際より大きく響かせるよりも、はっきり述べておきたいからです。これは 格納型 のクロスサイトスクリプティングであり、それが実行しうるスクリプトは、訪問者のブラウザーではなく、ショップ管理者 のブラウザーで動作します。そうなるには、二つの別々のことが両方とも起こる必要があります。ゲストとして注文する誰かが、購入手続きの際に カスタム注文フィールド に細工した値を送信し、その後、管理者がその注文を WordPress の管理画面の注文編集画面で開く、という二つです。送信された値は注文とともに保存され、その画面上でエスケープされずに出力されるため、注文が閲覧された時点で実行されます。

お使いの Welcart のバージョンは公開ファイルから読み取れますが、私にはお客様の注文は見えませんし、いずれかの注文に細工した値が含まれているかどうかも、誰かが実際にお使いのサイトに対してこれを行ったかどうかも見えません。ですから、この通知はお使いのバージョン番号にもとづく 予防的なお知らせ であり、お使いのサイトについての確定した所見ではありません。

この問題が何であり、何でないのかを正確に述べておくことにも意味があります。管理者のセッション内で発動するクロスサイトスクリプティングは、修正する価値のある現実の問題です。管理者がログインしている間に動作するスクリプトは、そのページが開かれている間、その管理者の権限で振る舞えます。しかしそれ自体は、サイトの完全な乗っ取りではありません。お使いのサーバー上でのリモートコード実行ではなく、認証されていない見知らぬ相手が自分自身に管理者アカウントをただ与えられるような手段でもありません。私が他所で書いているような完全侵害に至る問題よりも狭く、また注文が送信されることと、管理者がそれを開くことの両方に依存します。ですから、事実が裏づける以上に恐ろしい印象をお持ちいただくよりも、その規模を正直にお伝えしたいと思います。

これは プラグイン の不具合であり、WordPress 本体の不具合ではありません。WordPress を完全に最新の状態にしていても、Welcart プラグイン自体が影響を受けるバージョンであれば、あなたを 守ってはくれません

このメッセージは本物ですか?

はい。これは独立したセキュリティ研究者による、善意に基づく責任ある開示の通知です。私は金銭、パスワード、サイトへのアクセス権を お求めしておらず、サイトへの侵入、注文、いかなるものの悪用も 試みていません

私が行ったのは、お使いのサイトがすべての訪問者に提供しているページとファイル(あなたのトップページが公開されているのと同じ意味で公開されているもの)を閲覧し、プラグインが公開しているバージョン番号を書き留めただけです。具体的には、注文を 行っておらず、購入手続きを通じて何かを送信しても おらず、ログインも しておらず、影響を受ける機能に何かを送信しても いません。この確認のいかなる部分も、お客様のデータ、管理領域、注文、あるいはサイトの非公開部分に触れることはありません(詳しくは下記の 私が行ったことと行っていないこと をご覧ください)。

私が何者であるかをご確認いただきたい場合は、このページの末尾にある連絡先と このサイトについて のページをご覧ください。

なぜ重要なのか

Welcart は WordPress サイトをオンラインショップに変えるもので、日本で最も広く使われている WordPress 向け e コマースプラグインです。その働きの一部は、購入手続きの際に顧客の情報を受け取り、それを注文とともに保存して、スタッフが後で確認できるようにすることです。この情報には、追加情報を集めるためにショップが加えた任意のカスタム注文フィールドも含まれます。

影響を受けるバージョンでは、ゲストによる購入手続きの際にカスタム注文フィールドへ送信された値が注文とともに保存され、その後、WordPress の管理画面の注文編集画面に エスケープされずに 表示されます。エスケープとは、マークアップのように見えるテキストを、表示のために再びただのテキストへ戻す処理のことです。エスケープがないと、能動的なコンテンツを含むように細工された値はテキストとして表示されず、代わりにその注文を開いた管理者のブラウザーによって実行されます。ゲストはログインせずに注文できるため、その値を送り込む人物には、お使いのサイト上のアカウントはまったく必要ありません。

前提条件は、どちらの方向にも誤解されやすい部分なのではっきり述べておきます。これには、細工された注文が送信されていること 、管理者がそれを開くことの 両方 が必要です。あなたの店頭では発動せず、通常の訪問者には何もしません。それが到達するのは、WordPress の管理画面で注文を閲覧しているショップ管理者のセッションです。

私はこれを、サイト運営者が対応するために必要な範囲で説明しており、それ以上には踏み込みません。誰かがこれを再現できるような詳細は公開しませんし、ご自身のサイトや他者のサイトに対して試さないようお願いします。下記のとおりバージョン番号を確認すれば、どう対応すべきかを判断するのに必要なことはすべて分かります。

私のメールがこの問題を挙げていた場合、それはお使いのサイトが報告しているバージョンが 2.12.1 以前であることを意味します。私は、お使いの特定のサイトが悪用可能かどうかを検証しておらず、お客様の注文も見えません。私が観測したのはバージョンのみです。

影響を受けますか?

結局のところ、一つの問いに行き着きます。お使いの Welcart のバージョンはどれですか?

WordPress の管理領域から(正式な情報源):

  1. WordPress のダッシュボードにログインします(通常は yourdomain.com/wp-admin)。
  2. プラグイン から インストール済みプラグイン に進みます。
  3. フォルダが usc-e-shop である項目、Welcart e-Commerce を見つけ、その名前の下に表示されているバージョンを確認します。

公開マニフェストから(ログイン不要): ブラウザーで

yourdomain.com/wp-content/plugins/usc-e-shop/readme.txt

を開き、上部付近の Stable tag: の行を読みます。このアドレスが「見つかりません」を返す場合は、大文字の README.txt を試してください。大文字と小文字を区別するサーバーがあり、一部のパッケージはこのファイルを大文字で提供します。

ページのソースから(ログイン不要): トップページのソースを表示し、プラグイン自身のスタイルシートを、正確に次のパスで探します。

/wp-content/plugins/usc-e-shop/css/usces_default.css?ver=...

その ファイルに付いている ?ver= の数字が、プラグイン自身のバージョンであり、私が読み取った公開情報源です。Welcart はこのスタイルシートをショップのページで読み込むため、ショップページやカートページはこれを見つけるのに確実な場所です。バージョンは usces_default.css からのみ読み取ってください。ページに書き込まれる他のファイルは、それぞれまったく無関係な ?ver= の数字を持っており、最初に見つけた数字を読むと、別のソフトウェアのバージョンをつかまされることになりかねません。ページのソースから読める数字がまったく得られない場合、それはよくあることで、何かの兆候ではありません。キャッシュや最適化のプラグインは、アセットの URL から ?ver= の値を日常的に取り除くためです。その場合は readme.txt か管理画面を使ってください。

そのうえで、次のルールを当てはめてください。バージョンは 文字としてではなく数値として 比較される点にご注意ください。したがって、「12」がテキスト上は「9」より小さく見えても、2.12.1 は 2.9.1 より新しいバージョンです。

  • 2.12.1 以前: 影響を受けます。2.12.2 以降に更新してください。ある値を下回れば古いリリースが再び安全になる、といった区切りはありません。
  • 2.12.2 以降: この問題に関してはすでに修正済みです。利用可能な最新バージョンを入れておくのが最善です。

更新方法

このプラグインは無料で、現在も公開されており、活発にメンテナンスされているため、修正は通常の更新です。最も安全な方法は WordPress 自体を通じて更新することで、先にバックアップを取ってください。

  1. 変更を加える前に、サイトをバックアップ(ファイルとデータベース)してください。ほとんどのホスティング事業者はワンクリックのバックアップを提供しており、あるいは WordPress のバックアッププラグインを使ってください。
  2. WordPress の管理領域で、ダッシュボード から 更新、または プラグイン から インストール済みプラグイン に進みます。Welcart の更新が表示されていれば、ここからインストールします。
  3. コマンドラインをお使いになりたい場合は、WP-CLI が同じことを行います。wp plugin update usc-e-shop(このコマンドは表示名ではなくフォルダ名を使います)。
  4. 更新が表示されない場合は、WordPress.org のディレクトリにあるプラグインのページ、Welcart e-Commerce から最新リリースを直接入手し、プラグイン から 新規プラグインを追加 から プラグインのアップロード で更新できます。
  5. 更新後は、上記の手順で新しいバージョン番号(2.12.2 以降)を確認し、管理領域で最近の注文を開いて、注文画面が引き続き正常に表示されることを確かめてください。

2.12.2 のリリースは、この問題のほかにも他のセキュリティ問題を修正しているため、いずれにしても更新する価値があります。管理領域にいるうちに、WordPress 本体 と他のプラグインが最新であることも確認しておくとよいでしょう。同じ原則がそれらすべてに当てはまります。

更新後に

2.12.2 以降に更新すればこの問題は解消し、ほとんどのサイトではそれで作業は完了です。このページは予防的な通知であり、インシデント報告ではありません。私にはお使いのサイトで何かが起きたかどうかを知る手立てはなく、確認もしていません。

更新したてのうちに、一つ小さなことをやっておく価値があります。

  • バージョンが実際に変わったことを確認し(上記の確認方法のうち最も簡単なもので)、管理領域で注文を開いて、注文画面が引き続き表示されることを確かめてください。

このページに「侵害されたと想定して対処する」チェックリストがないことにお気づきになるでしょうが、これは見落としではなく意図的なものです。この問題がもたらすのは、管理者のブラウザーで動作するスクリプトであり、しかも、細工された注文が送信され、かつ管理者が後でそれを開いた場合に限られます。お使いのサーバー上でコードを実行するものではなく、それ自体で管理者アカウントを作り出すものでもありません。ですから、乗っ取り類の不具合の後に私がおすすめする管理者アカウントの点検やパスワードのローテーションは、ここでは釣り合いません。更新し、確認し、通常どおりお進みください。仮に、これがお使いのサイトに対して使われたと考える具体的な根拠がある場合(バージョン番号のみにもとづくこの通知は、その根拠を何ら示すものではありませんが)、管理者のログインを通常どおりの注意をもって扱うのは妥当ですが、バージョンだけがそれを要求するわけではありません。

私が行ったことと行っていないこと

私のメールの背後にある確認について完全に透明であるために申し上げます。私が読んだのは、お使いのサイトがすでにすべての訪問者に提供しているファイルだけで、具体的には、トップページとそこに書かれた Welcart のスタイルシートのアドレス、そして wp-content/plugins/usc-e-shop/ 内にあるプラグインの公開 readme.txt です。私は、お使いの WordPress の管理領域、データベース、注文、あるいはサイトの非公開部分に アクセスしていません

とりわけ、私は 注文を行ったことも、購入手続きを通じて何かを送信したことも、ログインしたことも、影響を受ける機能に何かを送信したことも一切ありません。何も送信、検証、悪用していません。ここではそれが重要です。というのも、購入手続きで細工した値を送信することは、この問題が扱うまさにその行為にきわめて近く、「私はそれに触れていない」という点こそが、開示と侵入とを分けるすべてだからです。

また、この問題への対処を誰かに手助けするような詳細も、意図的に公開していません。上記の説明はサイト運営者に必要な水準で止めており、概念実証コードへのリンクも掲載していません。

これは バージョンにもとづく観察 です。お使いのサイトは 2.12.1 以前のバージョンを報告しています。これは、私が確認した時点でお使いのサイトが悪用可能であったという主張ではありません。この問題は、細工された注文が送信されることと、管理者がそれを開くことの両方に依存しており、それらは私には見えないため、影響を受ける範囲にあるサイトでもまったく露出していないことは十分にあり得ますし、その範囲にあるサイトが、ウェブアプリケーションファイアウォールやバックポートされた修正といった別の手段で個別に保護されていることもあり得ます。すでに更新済み、あるいは別の方法で対処済みの場合は、何もする必要はありません。お騒がせしたことをお詫びします。

ウェブマスターがいない/行き詰まった場合

サイトを保守しているのがあなたご自身でない場合は、保守を担当されている方(ウェブ開発者、制作会社、またはホスティング事業者)にこのページを転送してください。上記の手順はすぐに分かるはずです。

ご自身でサイトを保守していて行き詰まった場合は、無償で正しい方向を指し示すお手伝いを喜んでいたします。下記の連絡先からご連絡ください。

連絡先

Evan Harris、セキュリティ研究者

私がこうした問題についてご連絡するのは、ひとえに運営者の方々がサイトを安全にするお手伝いをするためです。今後ご連絡を希望されない場合は、お知らせいただければそれを尊重いたします。

参考情報

公式のアドバイザリーと追跡情報

ベンダー / プラグイン