
WordPress サイトが WP2Shell(CVE-2026-63030 および CVE-2026-60137)に晒されているかどうかを確認するコマンドラインツールです。読み取り専用のリクエストで WordPress のバージョンと REST API の公開状況を読み取り、判定結果を報告します。何も悪用しません。
[!WARNING] 許可を得たテスト専用です。所有しているサイト、または書面で確認の許可を得たサイトでのみ使用してください。 作者(
DanSec)は誤用や損害について一切の責任を負いません。
WP2Shell は、SQL インジェクション(CVE-2026-60137)と REST バッチプロセッサの欠陥(CVE-2026-63030)を /wp-json/batch/v1 エンドポイント経由で連鎖させ、デフォルトの WordPress インストールで認証なしのリモートコード実行を可能にします。両 CVE は CISA の既知の悪用カタログに掲載されています。
| ブランチ | 脆弱なバージョン | 修正版 |
|---|---|---|
| 6.9.x | 6.9.0 から 6.9.4 | 6.9.5 |
| 7.0.x | 7.0.0 から 7.0.1 | 7.0.2 |
| 7.1 以降 | 影響なし | n/a |
Python 3.8+ が必要です。
pip install -r requirements.txt
requests と rich が必要です。sublist3r はオプションです(サブドメイン列挙用)。
より広範囲な列挙には、subfinder(pip ではなく Go バイナリ)をインストールし、--subfinder を指定してください。
# 1 つのホストを確認
python wpScanner.py example.com --passive
# ルートドメインのサブドメインを列挙し、それぞれを確認
python wpScanner.py example.com --subfinder --threads 8
結果は CSV にも書き出されます。バージョンソースが一致しない場合、誤った「全クリア」判定を避けるため、ツールは最も低いバージョンで分類します。リモートチェックでは、バージョン文字列を変更せずにバックポートされたパッチを確認できないため、管理下のホストでは wp core version が真実の基準となります。
コアを 6.9.5、7.0.2、または 7.1+ に更新してください(wp core update)。まだパッチを適用できない場合は、ファイアウォールで /wp-json/batch/v1 をブロックし、匿名の REST アクセスを制限してください。
許可を得た防御目的のみで提供されます。チェック対象のホストに対して確認の許可を持っているかどうかは、利用者の責任です。
| オプション | 説明 | デフォルト |
|---|
-o, --output | CSV 出力ファイル | WP2Shell_output.csv |
--passive | 指定したホストのみを確認し、列挙をスキップ | オフ |
--subfinder | サブドメインソースとして subfinder を追加 | オフ |
--threads | 同時実行ワーカー数 | 1 |
--retries | ホストあたりの再試行回数 | 1 |
--rate-limit | 1 秒あたりの最大リクエスト数(シングルスレッド、0 = 制限なし) | 0 |
| 判定 | 意味 |
|---|
VULNERABLE | 影響を受けるバージョンで、バッチエンドポイントに到達可能。 |
LIKELY_MITIGATED | 影響を受けるバージョンだが、バッチエンドポイントがブロックされているか、REST が無効化されている可能性がある。 |
PATCHED | 修正済みバージョン、または影響を受けるリリースより前のバージョン。 |
VERSION_UNKNOWN | WordPress は検出されたが、バージョンを読み取れなかった。 |
NOT_WORDPRESS | WordPress のフィンガープリントなし。 |
ERROR | 到達不能、またはネットワークエラー。 |