
最近のWordPress コア 脆弱性 — wp2shell 事前認証RCEチェーンを含む — に対する非侵入型検出スキャナーです。
wp2shell_scanner.py はWordPressサイトのコアバージョンをフィンガープリントし、公開されているREST APIサーフェスを読み取り、検出されたバージョンに対して追跡中の各コアCVEを個別に分類します。判定はブランチ対応です — 例えば 6.8.x のサイトはSQLインジェクションCVEには露出していると正しく報告されますが、完全なRCEチェーンには該当しません。検出のみを行います。エクスプロイトペイロードが送信されることは一切ありません。単一ファイル、依存関係は1つ(requests)、CIフレンドリーな終了コード、そしてクライアント対応のHTML / JSON / メールレポートを提供します。
⚠️ 許可された利用のみ。 自分が所有する、または(書面で)明示的にテストを許可されたシステムのみをスキャンしてください。このスキャナーは識別用の
User-Agentを送信するため、ブルーチームがトラフィックを特定できます — 隠蔽はしません。
wp2shell RCEチェーン = CVE-2026-63030 + CVE-2026-60137 の組み合わせ → デフォルトインストールにおける事前認証リモートコード実行。スキャナーは、検出されたバージョンで両方のCVEが脆弱と分類された場合のみ、チェーンを露出として報告します。
スキャナーが正しく処理するブランチのニュアンス:
6.8.x はSQLインジェクション(CVE-2026-60137)のみを含む — RCEチェーンは対象外。6.9ブランチでは、CVE-2026-3906(Notes)は6.9.2で修正されますが、wp2shellチェーンは6.9.5まで閉じられません。したがって6.9.2/6.9.4はNotesバグに対しては修正済みと判定されますが、RCEチェーンに対しては脆弱のままです — そのためスキャナーはこのブランチでは**6.9.5以降**のみを推奨し、6.9.4は決して推奨しません。運用上重要な点: wp2shellの技術解説書と動作するPoCはすでに公開されています。バージョン検出は今や絶対的な最低限です — 優先事項はパッチ適用です。更新により脆弱な経路は閉じられますが、パッチ前に仕込まれたバックドアは除去されません — そのためレポートには侵害評価のステップが含まれています。
これはコアバージョンスキャナーです。プラグインおよびテーマのCVE — WPScan / Patchstackカタログの大部分 — は、ライブでキュレーションされたフィードとプラグインごとのバージョン列挙を必要とするため、ここでは意図的に対象外です。その領域(最近のWordPressコアCVE)において、商用の脆弱性データベースを複製するのではなく、正確かつブランチ単位で正確であることを目指しています。
<meta name="generator">/readme.html<generator> タグ/wp-links-opml.php(OPML)/wp-json/ を読み取り、WordPressがRESTインデックスでbatch/v1名前空間を公開しているかどうかを確認します。これは名前空間が登録されていることを確認するもので、WAF経由でエンドポイントに到達可能であることを確認するものではありません。バッチリクエストもペイロードも送信されません。何も悪用しません。SQLインジェクションペイロードも、バッチルート混乱リクエストも、コード実行やデータ読み取りの試みもありません。検出はバージョンベースに加え、公開されているAPIサーフェスの受動的な読み取りに基づきます。
pip install requests
# single target
python3 wp2shell_scanner.py -t https://site.example --authorized
# list of targets (one per line, # comments allowed)
python3 wp2shell_scanner.py -T scope.txt --authorized -o ./reports
# preview the output formats with synthetic data — no network, no auth needed
python3 wp2shell_scanner.py --demo -o ./reports
--authorized フラグは明示的な認可ゲートです — ライブスキャンはこれなしでは実行を拒否します。
| コード | 意味 |
|---|---|
2 | 少なくとも1つのターゲットが脆弱 |
1 | 少なくとも1つのターゲットが不明確 / エラー |
0 | クリーン(パッチ適用済み / 影響なし / WordPressではない) |
通知メールの受信者は、スクリプト上部付近にあるCSSLTD_CONTACT定数です(デフォルト [email protected])。ご自身の受信用アドレスに編集してください。
examples/ ディレクトリには、架空の脆弱なホスト(example.com、WordPress 6.9.1 — 追跡対象の3つのCVEすべてに露出)向けの合成(--demo)出力が含まれています:
wp2shell_report_example.com.html — クライアント対応のHTMLレポートwp2shell_example.com.json — JSONレコードwp2shell_email_example.com.txt — 通知メールのドラフトこれらはレポート形式を説明するための架空のデータから生成されています。実際のサイトをスキャンした結果ではありません。
6.9.5+のみがクリアです — 6.9.4にはまだwp2shellチェーンがあります。)uploads/、wp-config.php、wp-cron、管理者アカウントにわたって侵害評価を実行します。既知の正常なコアに対してファイル整合性チェックを実行します。/wp-json/batch/v1の制限)。このツールは許可されたセキュリティテスト専用です。対象をスキャンする許可を得ていることを確認する責任は利用者にあります。無許可のスキャンは違法となる場合があります。作者は誤用について一切の責任を負いません。
| CVE | 弱点 | アクセス | 影響を受けるコア | 修正バージョン |
|---|
| CVE-2026-63030 — wp2shell | CWE-436 — RESTバッチルート混乱 → RCE(Critical; CVSS 9.8 WPScan CNA / 7.5 CISA-ADP; GHSA-ff9f-jf42-662q) | 未認証 | 6.9.0–6.9.4, 7.0.0–7.0.1 | 6.9.5, 7.0.2 |
| CVE-2026-60137 | CWE-89 — WP_Query の author__not_in におけるSQLインジェクション(単体ではModerate、CVSS 5.9; チェーン内ではCritical; GHSA-fpp7-x2x2-2mjf) | 未認証 | 6.8.0–6.8.5, 6.9.0–6.9.4, 7.0.0–7.0.1 | 6.8.6, 6.9.5, 7.0.2 |
| CVE-2026-3906 | CWE-862 — Notes REST APIの認可欠落(Moderate、CVSS 4.3、GHSA-6x83-fcf5-r65g) | 購読者以上 | 6.9.0–6.9.1 | 6.9.2 |
| フラグ | 意味 |
|---|
-t, --target | 単一ターゲットのURLまたはホスト |
-T, --targets-file | 1行に1ターゲットを記述したファイル |
--demo | 合成データからサンプルレポート/メールを生成(ネットワーク不要) |
-o, --output-dir | 出力ディレクトリ(デフォルト ./wp2shell_reports) |
--formats | カンマ区切りリスト: json,html,email(デフォルト: すべて) |
--authorized | 認可ゲート — ライブスキャンに必須 |
--timeout | HTTPタイムアウト(秒)(デフォルト 12) |
--delay | ターゲット間の待機秒数(相手に配慮; デフォルト 1.0) |
--insecure | TLS証明書を検証しない |
--quiet | コンソールサマリーの抑制 |
| 判定 | 意味 |
|---|
VULNERABLE | 検出されたバージョンが影響を受ける範囲内 — 直ちにパッチ適用 |
PATCHED | 修正済みリリース上; 追跡対象のCVEに露出していない |
NOT_AFFECTED | バージョンが追跡対象の最も古い欠陥より前(< 6.8.0 — CVE-2026-60137) |
UNKNOWN | バージョンを確認できない、ベクターが不一致、またはプレリリースビルドを検出 — 手動で確認 |
NOT_WORDPRESS | WordPressフィンガープリントが見つからない |