Product Filter by WBWにSQLインジェクションの弱点
WordPress の WooCommerce 向けプラグイン Product Filter by WBW の 3.4.6 以前に、認証なしで外部から悪用できる SQL インジェクションの弱点が見つかりました。このプラグインを使う EC サイトの運営者が影響を受けます。修正版の有無は公表されていないため、ベンダーの告知を確認し、対策が出るまでは回避策も検討してください。
急ぎ度: 早めに
CVSS 9.3で認証なしにネットワークから悪用できますが、実際の攻撃での悪用(KEV)は確認されておらず、EPSSも示されていないため、至急ではなく早めの対応が妥当です。
関係があるか
WordPressとWooCommerceで運営するオンラインショップのうち、商品の絞り込みにProduct Filter by WBW(プラグイン名woo-product-filter)を入れているサイトが対象です。バージョンが3.4.6以前であれば影響を受けます。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| Product Filter by WBW(woo-product-filter、提供元 WPFactory) | 3.4.6以前(下限は公表されていません) | 公表されていません。ベンダーの告知やPatchstackの情報で確認してください |
確かめ方
- 1WordPressの管理画面で「プラグイン」→「インストール済みプラグイン」を開き、Product Filter by WBWが有効か停止中か、バージョンはいくつかを確認します。
- 2複数サイトを管理している場合は、各サイトのプラグイン一覧を洗い出し、woo-product-filterが入っているサイトを一覧にします。
- 3停止中でもファイルが残っていれば、構成によってはリスクが残る可能性があります。使わないプラグインは削除を検討してください。
- 4WP-CLIを使える環境では、次のコマンドで版を確認できます。
何が起きたか
WordPress用プラグインProduct Filter by WBWに、SQLインジェクションと呼ばれる種類の弱点が見つかりました。SQLインジェクションとは、サイトの裏側にあるデータベースへの問い合わせに、外部から送られた入力が不適切に混ざってしまう問題です。プラグインが入力を十分に無害化していないため、本来想定されていない形でデータベースへの問い合わせが変えられるおそれがあります。
今回の弱点は「ブラインドSQLインジェクション」に分類されます。これは、画面に結果が直接表示されなくても、応答の違いなどを手がかりにデータベースの内容を少しずつ読み取られる型です。影響を受けるのは3.4.6以前の版で、CWE-89(SQLコマンドに使われる特殊要素の不適切な無効化)に当たります。
CVSS v3.1の基本スコアは9.3で、深刻度はCriticalです。ベクターでは、ネットワーク経由で、特別な権限も利用者の操作も不要で、攻撃の複雑さも低いとされています。機密性への影響は高、可用性への影響は低、完全性への影響は無しと評価されています。影響範囲が変わる(スコープ変更)とも評価されています。
攻撃の流れ
-
1
対象の特定
攻撃者が、このプラグインを使っているWordPressサイトを見つけます。
-
2
細工した入力
ログインなしで、プラグインが受け付ける入力に不正な内容を送ります。
-
3
問い合わせの改変
入力が無害化されないため、データベースへの問い合わせの内容が意図せず変わります。
-
4
情報の推測
応答の違いなどから、データベース内の情報を少しずつ読み取られるおそれがあります。
どう悪用されるか
悪用に必要な前提は少ないと評価されています。ネットワーク経由で到達でき、ログインなどの認証は不要で、サイト管理者や訪問者の操作も要りません。つまり、プラグインが有効で外部から見えるサイトであれば、条件を満たす可能性があります。
悪用された場合の中心的な被害は、データベース内の情報の漏えいです。WordPressのデータベースには、会員情報、注文情報、ユーザー情報などが入っていることがあります。可用性への影響も低いながら評価されており、サイトの動作に影響が出る可能性があります。一方、データの改ざん(完全性)への影響は無しと評価されています。
実際の攻撃での悪用が確認されたという情報は、現時点で公表されていません。
今すぐやること
-
1
導入の有無と版を確認する
自社で管理するすべてのWordPressサイトで、Product Filter by WBWが入っているか、版が3.4.6以前かを確認します。代理店や制作会社が運用しているサイトは、問い合わせて確認します。
wp plugin list --name=woo-product-filter --fields=name,status,version -
2
修正版の公開状況を確認する
ベンダー(WPFactory)の告知、WordPress管理画面の更新通知、Patchstackの情報を見て、修正版が出ているかを確かめます。出ていれば、バックアップを取ったうえで速やかに更新します。
-
3
修正版が無い間は無効化を検討する
絞り込み機能を止めても業務への影響が小さいなら、プラグインを一時的に無効化します。商品の絞り込みが売上に直結する場合は、代替手段や次の回避策と合わせて判断します。
-
4
異常の兆候を確認する
Webサーバーやアプリケーションのログで、プラグインに関係するリクエストに不審な増加や長い入力がないかを見ます。個人情報を扱うサイトでは、漏えいの可能性も念頭に置いて点検します。
-
5
バックアップと連絡体制を整える
更新前にサイトとデータベースのバックアップを取ります。万一の漏えいに備え、社内の連絡先と対応手順を確認しておきます。
すぐ更新できないとき
修正版を当てられない場合は、プラグインを無効化するか削除するのが確実です。WAF(Webアプリケーションファイアウォール)を使っている場合は、SQLインジェクション対策のルールが有効かを確認してください。ただしWAFは補助的な手段であり、修正版の適用の代わりにはなりません。具体的な回避策がベンダーから示されているかは、現時点で公表されていません。
背景
WordPressのプラグインは、機能を手軽に足せる一方で、サイト全体の安全がプラグインの品質に左右されます。Product Filter by WBWのようなEC向けプラグインは、商品検索や絞り込みのためにデータベースへ頻繁に問い合わせるため、入力の扱いが甘いとサイトの中核データに影響しやすい位置にあります。
SQLインジェクションは古くから知られた弱点の種類で、入力を問い合わせの一部として扱う設計上のミスから生じます。対策はプログラムの書き方で確立されていますが、プラグインのような外部の部品に見つかるケースは今も繰り返されています。認証が不要なものは、導入サイトを機械的に探して試される可能性があるため、公開後は早めの確認が望まれます。
よくある質問
Q.すでに攻撃されているのですか。
Q.プラグインを停止していれば安全ですか。
Q.修正版はいつ出ますか。
まだ分かっていないこと
- 修正版の版番号と公開時期は公表されていません。
- 実際の攻撃での悪用の有無と、悪用が見込まれる度合い(EPSS)は現時点で明らかになっていません。
- 影響を受ける版の下限(いつから存在した弱点か)は公表されていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| WPFactory | Product Filter by WBW |
3.4.6 以前 |
— |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in WPFactory Product Filter by WBW woo-product-filter allows Blind SQL Injection.This issue affects Product Filter by WBW: from n/a through 3.4.6.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- web audit@patchstack.com
- web nvd.nist.gov
- web github.com