2026年5月20日
2026年5月20日
WordPressプラグインの脆弱性を確認する方法|WP-CLI・WPScan・脆弱性データベースの使い方
プラグインの脆弱性は、公開されてから攻撃が始まるまでの時間が短いことがあります。入れているプラグインとバージョンを把握し、既知の脆弱性と照らし合わせ、修正版があれば更新する、という流れを定期的に回すのが基本です。この記事では、WP-CLI でのバージョンの確認、WPScan での照合、脆弱性データベースの見方、改ざんの確認、見つかったときの対処を順に説明します。コマンドと料金の条件は、2026年11月時点で各公式ドキュメントを確認した内容です。
1. 入れているプラグインとバージョンを一覧にする
まず、何がどのバージョンで入っているかを把握します。管理画面の「プラグイン → インストール済みプラグイン」でも確認できますが、WP-CLI を使うと一覧を保存できます。
# 名前・バージョン・有効/無効・更新の有無を表示
wp plugin list --fields=name,version,status,update
# 更新があるものだけを表示
wp plugin list --update=available
# 記録用に JSON で保存
wp plugin list --fields=name,version,status --format=json > plugins.json
無効化しているプラグインも一覧に出ます。無効でもファイルはサーバーに残っており、脆弱性のあるファイルに直接アクセスされる場合があるため、使っていないものは削除しておきます。WP-CLI の基本は「WP-CLI でプラグインを管理する方法」で説明しています。
2. WPScan で既知の脆弱性と照合する
WPScan は、WordPress サイトを外から調べるコマンドラインのツールです。脆弱性の情報は WPScan の API から取得するため、wpscan.com でアカウントを作り、API トークンを発行して使います。
WPScan の料金ページによると、無料のプランは非商用での利用に限られ、API の呼び出しは1日25回までです。業務のサイトで使う場合は有料のライセンスが必要です。API トークンなしでも動きますが、その場合は脆弱性の情報が表示されません。
# インストール(Ruby の gem で入れる場合)
gem install wpscan
# Docker で使う場合
docker pull wpscanteam/wpscan
# 脆弱性が報告されているプラグインを調べる
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp
# 検出方法を passive と aggressive の両方にする
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp --plugins-detection mixed
-e のおもな値は次のとおりです。
| 値 | 対象 |
|---|---|
vp |
脆弱性が報告されているプラグイン |
ap |
すべてのプラグイン |
p |
よく使われるプラグイン |
vt |
脆弱性が報告されているテーマ |
プラグインの検出は、標準ではページの HTML などから読み取る passive です。HTML に痕跡が出ないプラグインは見つからないことがあるので、aggressive や mixed を指定すると検出が増えますが、リクエストの数も増えます。
WPScan で調べてよいのは、自分が管理しているサイトか、許可を得たサイトだけです。使い方の詳細は「WPScan でサイトの脆弱性を調べる」も参考にしてください。
3. 脆弱性データベースで内容を確かめる
WPScan の結果や、セキュリティ系のニュースで名前が挙がったプラグインは、次のデータベースで詳細を確認します。
- WPScan Vulnerability Database(wpscan.com)
- Wordfence Intelligence(wordfence.com)
- Patchstack Database(patchstack.com)
- NVD(nvd.nist.gov、CVE 番号で検索)
見るべき項目は次のとおりです。
| 項目 | 確認すること |
|---|---|
| 影響するバージョン | 自分のバージョンが範囲に入っているか |
| 修正されたバージョン | 更新すれば解消するか。修正版がまだない場合もある |
| 必要な権限 | ログインなしで悪用できるか、投稿者や購読者の権限が必要か |
| 深刻度(CVSS) | 0〜10 の数値。高いほど影響が大きい |
| 種類 | XSS、SQL インジェクション、権限昇格、任意ファイルのアップロードなど |
ログインなしで悪用できるもの、深刻度が高いものから先に対応します。購読者の権限で悪用できるものは、ユーザー登録を受け付けているサイト(会員サイト・ショップなど)では急ぎます。
4. ファイルが改ざんされていないか確かめる
脆弱性が悪用された可能性があるときは、ファイルが配布時のままかを確認します。WP-CLI の verify-checksums は、WordPress.org が公開しているチェックサムとファイルを比べます。
# すべてのプラグインを検査
wp plugin verify-checksums --all
# 特定のプラグインだけ検査
wp plugin verify-checksums contact-form-7
# WordPress 本体のファイルを検査
wp core verify-checksums
問題がなければ Success: Verified 8 of 8 plugins. のように表示されます。追加されたファイルや内容が違うファイルがあると、その一覧が表示されます。
WordPress.org で配布されていない有料プラグインはチェックサムがないため、この方法では検査できません。その場合は、配布元から同じバージョンをダウンロードして、ファイルを比べます。
5. 脆弱性が見つかったときの対処
# 修正版がある場合: 更新する
wp plugin update contact-form-7
# 修正版がない場合: 無効化し、使わないなら削除する
wp plugin deactivate vulnerable-plugin
wp plugin delete vulnerable-plugin
# まとめて更新する前に、更新されるものを確認する
wp plugin update --all --dry-run
vulnerable-plugin は例です。実際のスラッグ(wp plugin list の name 列)に置き換えてください。
- 更新の前にバックアップを取り、更新後に主な画面(問い合わせフォーム、決済など)が動くことを確かめます。
- 修正版が出ず、開発が止まっているプラグインは、同じ機能の別のプラグインへの移行を検討します。WordPress.org で配布が停止されたプラグインは、プラグインのページに停止の表示が出ます。
- 改ざんの形跡がある場合は、更新だけでは足りません。管理者ユーザーの追加、uploads に置かれた PHP ファイル、wp-config.php の変更なども確認し、必要ならバックアップから戻します。
6. 確認を習慣にする
- 管理画面の「プラグイン」で、プラグインごとに自動更新を有効にできます(WordPress 5.5 以降)。更新で表示が崩れる心配が少ないプラグインから有効にします。詳しくは「プラグインの自動更新を設定する方法」を参照してください。
- WPScan を cron で定期的に実行する場合は、無料枠の1日25回と非商用の条件に注意します。
- セキュリティプラグインの Wordfence も、スキャンで更新が必要なプラグインなどを知らせます。使い方は「Wordfence でサイトをスキャンする」で説明しています。
まとめ
プラグインの脆弱性の確認は、一覧を取る(wp plugin list)、既知の脆弱性と照合する(WPScan や脆弱性データベース)、改ざんを確かめる(wp plugin verify-checksums)、更新か削除で対処する、の順に進めます。使っていないプラグインを削除しておくことが、もっとも手間のかからない対策です。